Почему это?) Ну не будет же пользователь тупо пялиться в экран и листать до посинения) ему нужна конкретная инфа) он возьмёт фильтр) отсортирует по полю с датой и временем, которое не совпадает по хронологии с датой и временем создания записи в бд)
Почему это?) Ну не будет же пользователь тупо пялиться в экран и листать до посинения) ему нужна конкретная инфа) он возьмёт фильтр) отсортирует по полю с датой и временем, которое не совпадает по хронологии с датой и временем создания записи в бд)
ну ... там смотря как реализовано =) чтобы не росло надо вместо номера страницы передавать id элемента и все элементы "после" должны монотонно возрастать тогда IMHO можно вполне оптимизированно получить
ну ... там смотря как реализовано =) чтобы не росло надо вместо номера страницы передавать id элемента и все элементы "после" должны монотонно возрастать тогда IMHO можно вполне оптимизированно получить
ну, от RPS зависит, но в целом чтобы сделать тупой LIMIT X,Y надо сначала прочитать X записей и потом отдать юзеру следующие Y
если у вас там реально десятки тысяч записей по WHERE фильтруется и хотя бы 200+ rps, вы начнете упираться в диски достаточно быстро, даже в NVMe ;) но это IMHO я давно уже MySQL \ Postgres на таких кейсах не мерял на современном железе... может и все ОК будет =) особенно с NVMe
Кстати, нюанс. Наложи сюда сортировку и фильтрацию)
ну так фильтрация то по WHERE будет применена либо после id > N если у вас других ключей нет а сортировка она в ЛЮБЫХ раскладах после WHERE ;) то есть увеличит время конечно но не настолько если вам надо ORDER BY id DESC то может проще id < N сделать тогда?
Почему это?) Ну не будет же пользователь тупо пялиться в экран и листать до посинения) ему нужна конкретная инфа) он возьмёт фильтр) отсортирует по полю с датой и временем, которое не совпадает по хронологии с датой и временем создания записи в бд)
Это реальность, никаких хаков)
если есть индекс по полю с датой, то там в MySQL \ PostgreSQL вроде есть оптимизация как раз для такого случая
ну, от RPS зависит, но в целом чтобы сделать тупой LIMIT X,Y надо сначала прочитать X записей и потом отдать юзеру следующие Y
если у вас там реально десятки тысяч записей по WHERE фильтруется и хотя бы 200+ rps, вы начнете упираться в диски достаточно быстро, даже в NVMe ;) но это IMHO я давно уже MySQL \ Postgres на таких кейсах не мерял на современном железе... может и все ОК будет =) особенно с NVMe
ну так фильтрация то по WHERE будет применена либо после id > N если у вас других ключей нет а сортировка она в ЛЮБЫХ раскладах после WHERE ;) то есть увеличит время конечно но не настолько если вам надо ORDER BY id DESC то может проще id < N сделать тогда?
Речь не о времени, если говорим что отдавай нам после такого то ид, то ок, если передаешь страницу и говоришь id > x*n то все фильтры эту схему ломают ибо после фильтрации предыдущие страницы в 99.99999% случаев будут содержать меньше чем x*n записей
А теперь сортировка. Кто сказал что после сортировки порядок ид сохранится?)