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

Lập chỉ mục nâng cao liên quan đến điều kiện OR-ed (pgsql)

Tùy thuộc vào các điều kiện, về mặt logic, có thể không thể sử dụng bất kỳ chỉ mục nào để trợ giúp một điều kiện phức tạp bằng cách sử dụng OR biểu thức.

Giống như MySQL, PostgreSQL 8.0 và các trạng thái cũ hơn trong tài liệu về chỉ mục của chúng :

Với PostgreSQL 8.1, điều này đã thay đổi .

Tuy nhiên, nếu điều này không hữu ích, bạn có thể sử dụng UNION giải pháp bạn đã thử (đây là giải pháp phổ biến cho người dùng MySQL, giải pháp này tiếp tục có giới hạn một chỉ mục cho mỗi bảng).

Bạn có thể sắp xếp các kết quả của UNION nhưng bạn phải sử dụng dấu ngoặc đơn để chỉ định rằng ORDER BY áp dụng cho kết quả của UNION , không chỉ đến truy vấn con cuối cùng trong chuỗi.

(SELECT ... )
UNION
(SELECT ... )
UNION
(SELECT ... )
ORDER BY columnname;

Tôi hi vọng cái này giúp được; Tôi không phải là chuyên gia về trình tối ưu hóa PostgreSQL. Bạn có thể thử tìm kiếm trong kho lưu trữ danh sách gửi thư hoặc hỏi trên kênh IRC .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách không tạo tiện ích mở rộng PostgreSQL 9.0 trên nền tảng RPM

  2. Làm cách nào để tạo trình kích hoạt cho tất cả bảng trong postgresql?

  3. Làm thế nào để tạo tệp vĩnh viễn trên Heroku?

  4. RANGE PRECEDING chỉ được hỗ trợ với UNBOUNDED

  5. PostgreSQL thay đổi thứ tự các hàng đã trả về