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

MySQL có thể sử dụng Chỉ mục khi có OR giữa các điều kiện không?

Kế hoạch truy vấn cho OR trường hợp xuất hiện để chỉ ra rằng MySQL thực sự đang sử dụng các chỉ mục, rõ ràng là có, nó có thể làm được, ít nhất là trong trường hợp này. Điều đó có vẻ hoàn toàn hợp lý, bởi vì có một chỉ mục trên seenid là PK.

Nếu "các giải thích hợp lý và hợp lý" mâu thuẫn với thực tế, thì có thể yên tâm cho rằng lôgic đó là thiếu sót hoặc các giải thích sai hoặc không thể áp dụng được. Hiệu suất nổi tiếng là khó dự đoán; kiểm tra hiệu suất là điều cần thiết khi tốc độ là quan trọng.

Bạn nên sử dụng cái mà kiểm tra nhanh hơn trên đầu vào, mô hình hóa đầy đủ mà chương trình sẽ thấy khi sử dụng thực tế.

Tuy nhiên, cũng lưu ý rằng hai truy vấn của bạn không tương đương về mặt ngữ nghĩa:nếu hàng có id = 5204 cũng có seen = 3 sau đó là OR truy vấn sẽ trả về nó một lần, nhưng UNION ALL truy vấn sẽ trả về nó hai lần. Việc lựa chọn giữa mã đúng và mã sai trên bất kỳ cơ sở nào khác với mã đúng là vô nghĩa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tôi có thể thực thi lệnh CMD trong ứng dụng bảng điều khiển c #?

  2. Chuỗi kết nối trình điều khiển MySQL JDBC là gì?

  3. MySQL; Loại dữ liệu tốt nhất cho số lượng lớn

  4. Thứ tự theo 3 ký tự cuối cùng

  5. Đếm số ký tự duy nhất trong một chuỗi