PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

postgresql:offset + limit menjadi sangat lambat

Gunakan kursor sebagai gantinya. Menggunakan OFFSET dan LIMIT cukup mahal - karena pg harus mengeksekusi kueri, memproses, dan melewati baris OFFSET. OFFSET seperti "lewati baris", itu mahal.

dokumentasi kursor

Kursor memungkinkan iterasi pada satu kueri.

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

Mungkin Anda dapat menggunakan kursor sisi server tanpa menggunakan pernyataan DECLARE secara eksplisit, hanya dengan dukungan di psycopg (bagian pencarian tentang kursor sisi server).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Terjadi kesalahan saat membuat basis data spasial. GALAT:tidak dapat memuat perpustakaan /usr/pgsql-9.1/lib/rtpostgis-2.0.so

  2. GALAT:subquery di FROM tidak dapat merujuk ke relasi lain dengan level kueri yang sama

  3. Basis data default bernama postgres di server Postgresql

  4. Cara membagi nama menjadi nama keluarga plus inisial

  5. PostgreSQL:Apakah ada fungsi yang akan mengubah int base-10 menjadi string base-36?