PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jeśli liczba PostgreSQL(*) jest zawsze wolna, jak stronicować złożone zapytania?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INSERT z dynamiczną nazwą tabeli w funkcji wyzwalacza

  2. Odejmij lata od daty w PostgreSQL

  3. Jak zmienić typ kolumny w Heroku?

  4. Pule połączeń z Pgbouncer w PostgreSQL 9.0

  5. Jak mogę umieścić bazę danych pod git (kontrola wersji)?