PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

postgresql:offset + limit trở nên rất chậm

Sử dụng con trỏ để thay thế. Sử dụng OFFSET và LIMIT khá tốn kém - vì pg phải thực hiện truy vấn, xử lý và bỏ qua các hàng OFFSET. OFFSET giống như "bỏ qua hàng", đắt tiền.

tài liệu về con trỏ

Con trỏ cho phép lặp lại trên một truy vấn.

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

Có thể bạn có thể sử dụng con trỏ phía máy chủ mà không cần sử dụng rõ ràng câu lệnh DECLARE, chỉ với sự hỗ trợ trong psycopg (phần tìm kiếm về con trỏ phía máy chủ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql - Làm cách nào để trích xuất lần xuất hiện đầu tiên của một chuỗi con trong một chuỗi bằng cách sử dụng mẫu biểu thức chính quy?

  2. Tổng quan về Biên dịch Just-in-Time (JIT) cho PostgreSQL

  3. CakePHP 2.2 với PostgreSQL Chèn hàng mới không thành công - Lỗi cơ sở dữ liệu:Bảng không xác định:7 LỖI:quan hệ table_id_seq không tồn tại

  4. Chọn tên và giá trị cột từ bảng

  5. Cách Extract () hoạt động trong PostgreSQL