Ответ 1
Вы прочитали заголовок этой статьи?
Обратите внимание, что следующая статья относится только к версиям PostgreSQL до 9.2. Сканирование только по индексу теперь реализовано.
Используйте 9.2, и вы, как правило, обнаружите, что получаете гораздо лучшие результаты. Подробнее читайте только для просмотра страниц вики.
Тем не менее, в старых версиях с использованием LIMIT
и OFFSET
обычно работает нормально. Вы можете оценить rowcounts (и, следовательно, pagecounts), используя статистику таблицы, если вы не возражаете против вариации. См. "Оценка количества строк" в статье, которую вы уже связали с.
Разбиение на страницы с использованием LIMIT
и OFFSET
равно, IMO, анти-шаблон в любом случае. Много времени вы можете перефразировать свой код разбивки на страницы, чтобы он использовал sort_column > 'last_seen_value' LIMIT 100
, то есть избегал смещения. Иногда это может привести к очень высокой производительности.