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

Cải thiện tốc độ truy vấn:SELECT đơn giản trong bảng postgres lớn

Trích xuất nhận xét của tôi thành một câu trả lời:tra cứu chỉ mục ở đây rất nhanh - tất cả thời gian đã dành để truy xuất các hàng thực tế. 23 giây / 7871 hàng =2,9 mili giây mỗi hàng, hợp lý để truy xuất dữ liệu nằm rải rác trên hệ thống con đĩa. Tìm kiếm rất chậm; bạn có thể a) lắp tập dữ liệu của mình vào RAM, b) mua SSD hoặc c) sắp xếp dữ liệu của bạn trước thời hạn để giảm thiểu các lần tìm kiếm.

PostgreSQL 9.2 có một tính năng gọi là quét chỉ chỉ mục cho phép nó (thường) trả lời các truy vấn mà không cần truy cập vào bảng. Bạn có thể kết hợp điều này với btree thuộc tính chỉ mục của việc tự động duy trì trật tự để làm cho truy vấn này nhanh chóng. Bạn đề cập đến int1 , int2 và hai phao:

CREATE INDEX sometable_int1_floats_key ON sometable (int1, float1, float2);
CREATE INDEX sometable_int2_floats_key ON sometable (int2, float1, float2);

SELECT float1,float2 FROM sometable WHERE int1=<value>; -- uses int1 index
SELECT float1,float2 FROM sometable WHERE int2=<value>; -- uses int2 index

Cũng lưu ý rằng điều này không xóa một cách kỳ diệu các tìm kiếm trên đĩa, nó chỉ di chuyển chúng từ thời gian truy vấn sang thời gian chèn. Nó cũng làm bạn tốn dung lượng lưu trữ vì bạn đang sao chép dữ liệu. Tuy nhiên, đây có lẽ là sự đánh đổi mà bạn muố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. Tính Tổng tích lũy trong PostgreSQL

  2. Trả về các hàng SETOF từ hàm PostgreSQL

  3. Ghi nhật ký kiểm tra cho PostgreSQL

  4. Entity Framework 6 với Npgsql

  5. Cách cấu hình SELinux cho PostgreSQL và TimescaleDB