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

Nhiều chỉ mục so với một chỉ mục trên nhiều cột trong postgresql

Bất kể bạn đã tạo bao nhiêu chỉ số trên mối quan hệ, chỉ một trong số chúng sẽ được sử dụng trong một truy vấn nhất định (chỉ số nào phụ thuộc vào truy vấn, thống kê, v.v.). Vì vậy, trong trường hợp của bạn, bạn sẽ không nhận được lợi thế tích lũy từ việc tạo hai chỉ số cột đơn. Để có được hiệu suất cao nhất từ ​​chỉ mục, tôi khuyên bạn nên sử dụng chỉ mục tổng hợp trên (vị trí, dấu thời gian).

Lưu ý rằng các truy vấn như ... WHERE timestamp BETWEEN smth AND smth sẽ không sử dụng chỉ mục trên trong khi các truy vấn như ... WHERE location = 'smth' hoặc ... WHERE location = 'smth' AND timestamp BETWEEN smth AND smth sẽ. Đó là vì thuộc tính đầu tiên trong chỉ mục rất quan trọng để tìm kiếm và sắp xếp.

Đừng quên thực hiện

ANALYZE;

sau khi tạo chỉ mục để thu thập số liệu thống kê.

Cập nhật: @MondKin được đề cập trong các bình luận các truy vấn nhất định thực sự có thể sử dụng một số chỉ mục trên cùng một mối quan hệ. Ví dụ:truy vấn với OR các mệnh đề như a = 123 OR b = 456 (giả sử rằng có chỉ mục cho cả hai cột). Trong trường hợp này, postgres sẽ thực hiện quét chỉ mục bitmap cho cả hai chỉ mục, xây dựng một tổ hợp các bitmap kết quả và sử dụng nó để quét đống bitmap. Trong một số điều kiện nhất định, cùng một lược đồ có thể được sử dụng cho AND nhưng thay vì kết hợp sẽ có một giao điểm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gọi RESTful Web Services từ thủ tục / hàm PostgreSQL

  2. Sử dụng \ COPY để tải CSV có các trường JSON vào Postgres

  3. Tổng hợp các cột với các bộ lọc bổ sung (riêng biệt)

  4. Tìm kiếm trường được mã hóa trong Postgres

  5. Thêm cột tăng tự động vào bảng hiện có được sắp xếp theo ngày