Если пролистать до старых страниц, допустим до 5000 страницы, то это происходит очень долго(примерно 10 секунд, даже с индексацией)
Это нормально. 5000 за 10 секунд - это 500 страниц в секунду. Ни один человек так быстро читать не умеет.
Если пользователь давит pagedown - то наверное он что-то не так делает. Дай ему опцию goto номер
страницы.
Count работает супер медленно, если брать загрузку самых свежих страниц, без него они загружаются за 15мс, но при использовании count (даже при условии того, что кол-во страниц ограниченно 5000, больше не нужно), задержка увеличивается до 3-5 секунд
Это нормально. Ни в одной БД count не работает достаточно быстро чтобы показывать реал-тайм.
Вообще если вспомнишь что базы бывают ACID то они считают не актуальное состояние таблицы
а "срез таблицы в прошлом" на момент начала тразнакции подсчета.
Запоминай последнее значение count в переменную и транслируй пользователю внизу странички
как актуальное но в прошлом. Например 15 минут назад.