Czy przeczytałeś nagłówek tego artykułu?
Pamiętaj, że poniższy artykuł dotyczy tylko wersji PostgreSQL wcześniejszych niż 9.2. Skanowanie tylko do indeksu jest teraz zaimplementowane.
Użyj 9.2, a ogólnie przekonasz się, że uzyskasz znacznie lepsze wyniki. Przeczytaj stronę wiki o skanowaniu tylko indeksu, aby uzyskać szczegółowe informacje.
To powiedziawszy, w starszych wersjach używających LIMIT
i OFFSET
ogólnie działa dobrze. Możesz oszacować liczbę wierszy (a tym samym liczbę stron) za pomocą statystyk tabeli, jeśli nie masz nic przeciwko odrobinie zróżnicowania. Zobacz „Szacowanie liczby wierszy” w artykule, do którego już prowadziłeś link.
Paginacja przy użyciu LIMIT
i OFFSET
i tak jest, IMO, anty-wzorcem. Często możesz przeformułować swój kod paginacji, aby używał sort_column > 'last_seen_value' LIMIT 100
, czyli unika przesunięcia. Może to czasami skutkować bardzo dużym wzrostem wydajności.