Каков наилучший способ заполнить понравившийся статус для канала в списке каналов, когда канал нравится миллионам - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь создать социальный портал, такой как Facebook или Instagram, где пользователь создает каналы, и другим пользователям это нравится.Я использую реляционную БД Mysql для хранения данных.

Мой вопрос:

, когда пользователь запрашивает список каналов и говорит, что сервер возвращает список из 50 каналов, тогда канал также долженимеет статус «лайк» (указывается, понравился ли пользователь конкретному каналу).Теперь, если у фида есть миллионы лайков, тогда поиск того, понравился ли заказчику этот фид, займет значительное время, и, поскольку мне нужно вернуть 50 таких фидов, определенно потребуется огромное количество времени для заполнения списка фидов.

Пока что я делаю это с помощью хранимой процедуры.

У меня есть таблица пользователей, таблица фидов и таблица лайков (которая содержит feed_id и User_id).Моя хранимая процедура использует IN-запрос для заполнения понравившегося статуса.Это работает, так как у меня очень мало людей.Но это займет много времени, так как число поклонников увеличится.

Как лучше всего подойти к нему?

1 Ответ

0 голосов
/ 17 мая 2019

Похоже, у вас нет подходящих индексов; миллионы строк не должны иметь большого значения.

PRIMARY KEY(feed_id, User_id),
INDEX(User_id, feed_id)

Пожалуйста, укажите SHOW CREATE TABLE и операторы SQL, обращающиеся к таблице; могут быть и другие советы для нас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...