Дизайн базы данных отношений для списка друзей / списка друзей - PullRequest
0 голосов
/ 29 ноября 2011

Я быстро собираю список друзей / друзей, где у пользователя будет список друзей.Для этого я буду использовать реляционную базу данных и обнаружу следующую запись:

Список друзей: Дизайн таблицы реляционной базы данных

Так что таблица друзей может выглядеть примерно так:

buddy_id     username
1            George
2            Henry
3            Jody
4            Cara

А таблица списков друзей пользователя будет выглядеть примерно так:

user_id      buddy_id
2            4
1            4
1            3

Мой вопрос: как быстро это будет, если у пользователя будет более 20 000 друзей и он хочетпотяните туда весь список за секунду или около того.Я бы запустил это на довольно типичной установке MySql.Будут ли какие-либо ключевые оптимизации или конфигурации БД, чтобы получить это быстро?

1 Ответ

0 голосов
/ 29 ноября 2011

Что для вас значит «вытащить их весь список»?

Я могу выбрать 20 000 строк из большой таблицы «друзей» (несколько миллионов строк) за 15 миллисекунд на моем компьютере, но это не включает время прохождения сети (оба направления), форматирование и отображение на веб-странице. (Я предполагаю, что смысл - веб-приложение.)

Вам понадобится индекс, который охватывает user_id, но создание первичного ключа для (user_id, buddy_id) должно сделать это.

Языки сценариев полезны для генерации тестовых данных. Я использую ruby ​​ сегодня.

...