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

postgresql:offset + limit działa bardzo wolno

Zamiast tego użyj kursora. Używanie OFFSET i LIMIT jest dość drogie - ponieważ pg musi wykonać zapytanie, przetworzyć i pominąć wiersze OFFSET. PRZESUNIĘCIE jest jak „pomijanie wierszy”, które jest drogie.

dokumentacja kursora

Kursor umożliwia iterację jednego zapytania.

BEGIN
DECLARE C CURSOR FOR SELECT * FROM big_table;
FETCH 300 FROM C; -- get 300 rows
FETCH 300 FROM C; -- get 300 rows
...
COMMIT;

Prawdopodobnie możesz użyć kursora po stronie serwera bez wyraźnego użycia instrukcji DECLARE, tylko z obsługą w psycopg (sekcja wyszukiwania o kursorach po stronie serwera).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EF Core GroupBy z opcją Select Distinct Count

  2. Nielegalna instrukcja:4 podczas uruchamiania Django

  3. Pobierz dzień z daty w PostgreSQL

  4. Jak mogę haszować hasła w postgresql?

  5. Jak policzyć liczbę wystąpień dla wszystkich różnych wartości w kolumnie bazy danych?