72 похожих чатов

Но тогда, чтобы отобразить feed ленту конкретного пользователя нужно просканировать

все сообщения, выделить из них те, которые отправлены пользователями, на которых ты подписан, а потом сортировать по дате отправки сообщения. Но ведь проходиться по всей базе с сообщениями - это наверное плохо?

10 ответов

10 просмотров

Ну, у вас есть иные варианты как реализовать подобный функционал эффективно?)

Eduard-Balichev Автор вопроса
Xezard
Ну, у вас есть иные варианты как реализовать подоб...

Я не знаю, как делают в хайлоад проектах, поэтому и спрашиваю. Вряд ли вк для того чтобы отобразить фид делают селект по всей базе с сообщениями

Eduard Balichev
Я не знаю, как делают в хайлоад проектах, поэтому ...

на хайлоад проектах есть хайлоад. Не стоит пытаться на старте родить гугл. Любой проект эволюционирует в процессе роста.

1) Достаточно просканировать сообщения, которые отправлены пользователями из списка друзей. 2) И их можно взять небольшое количество от каждого в порядке времени, а потом выдавать самое младшэе из всех. Как только у кого-то закончатся полученные -- взять у него ещё небольшое количество. Это позволит небольшыми обращениями к базе выдавать отсортированные сообщения. 3) Но, всё-таки, пытаться таким способом выдать все сообщения от десятков тысяч друзей за всё время -- можэт быть накладно. Особенно когда пользователь базы сильно не один. Потому обычно "ленту друзей" ограничивают в размерах. В ЖЖ, например, тремя сотнями сообщений.

Eduard-Balichev Автор вопроса
Ilya Anfimov
1) Достаточно просканировать сообщения, которые от...

По первому пункту вопрос - как можно просканировать только сообщения из списка друзей? В больших проектах таблица сообщений может занимать десятки миллиардов. Как в такой большой выборке найти только сообщения друзей без скана по всей таблице с сообщениями?

Eduard Balichev
По первому пункту вопрос - как можно просканироват...

SELECT <> FROM friend_of INNER JOIN messages ON messages.user_id = friend_of.friend_id WHERE friend_of.user_id = <user_id> И это самые азы, прорешайте задачи какого-нибудь учебника по SQL, быстрее будет, чем пытаться догадаться до всего поиском по stackoverotfl.

Eduard-Balichev Автор вопроса
Ilya Anfimov
SELECT <> FROM friend_of INNER JOIN messages ON me...

Как писать запросы я знаю. Но ведь движок БД все равно проходится по всей таблице сообщений, нет? Иначе не понимаю математику этого процесса

Eduard Balichev
Как писать запросы я знаю. Но ведь движок БД все р...

Не обязательно. Чтобы проходить не по всем сообщениям существуют индэксы.

Обычно по ТЗ строят. Берут ТЗ и по нему строят схему БД

Похожие вопросы

Обсуждают сегодня

Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Добрый день. Созданию отношения таблиц для учёта кораблей, их движения между точками (портами) согласно расписания. Терзают сомнения в правильном ли направлении двигаюсь 😅 1...
Aleksey
1
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
10
I have financial chart like this I can mask by color to get green and red squares. I want get two data First i want to get two last squares(two in the very right side colors) ...
@. .@
4
Привет. Наверняка у кого-нибудь здесь есть опыт работы с трекерами (встроенными в OpenCV (KCF) или абстрагированными) на одноплатниках. Если не рассматривать малинку и други...
Georgy Makarov
4
Всем привет, Добавил в плагин определение user agent public function registerMarkupTags() { return [ 'filters' => [ 'staticPage' => ['RainLab\Pages\Cl...
John Norton Kruger
3
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
А чего при переходе с 2 на 3 все что в билдере сделано тютю?
Денис Александрович
5
Hi guys Do you know any persian/farsi or english group for opencv?
@. .@
4
Карта сайта