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

Nếu số lượng PostgreSQL (*) luôn chậm, làm thế nào để phân trang các truy vấn phức tạp?

Bạn đã đọc tiêu đề của bài báo đó chưa?

Lưu ý rằng bài viết sau chỉ áp dụng cho các phiên bản PostgreSQL trước 9.2. Tính năng quét chỉ lập chỉ mục hiện đã được triển khai.

Sử dụng 9.2 và nhìn chung bạn sẽ thấy mình nhận được kết quả tốt hơn nhiều. Đọc trang wiki chỉ quét chỉ mục để biết chi tiết.

Điều đó nói rằng, trên các phiên bản cũ hơn sử dụng LIMITOFFSET nói chung là hoạt động tốt. Bạn có thể ước tính số hàng (và do đó là số trang) bằng cách sử dụng thống kê bảng nếu bạn không bận tâm đến một chút biến thể. Xem "Ước tính số hàng" trong bài viết bạn đã liên kết đến.

Phân trang bằng LIMITOFFSET dù sao cũng là IMO, một mô hình chống lại. Rất nhiều lúc, bạn có thể cụm từ lại mã phân trang của mình để mã này sử dụng sort_column > 'last_seen_value' LIMIT 100 , tức là nó tránh được sự bù đắp. Điều này đôi khi có thể dẫn đến tăng hiệu suất rất lớn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LOWER LIKE so với iLIKE

  2. Chỉ mục PostgreSQL không được sử dụng cho truy vấn trên các dải IP

  3. Khôi phục Pgbackrest và Khôi phục Delta

  4. Ràng buộc được xác định CÓ THỂ XÁC ĐỊNH BAN ĐẦU NGAY LẬP TỨC vẫn bị XÁC ĐỊNH?

  5. Cột thay đổi Rails Migration để sử dụng mảng Postgres