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

Hiệu suất MySQL trong toán tử OR

Đôi khi MySQL gặp sự cố khi tối ưu hóa OR truy vấn. Trong trường hợp này, bạn có thể chia nó thành hai truy vấn bằng cách sử dụng UNION :

SELECT * FROM relationship WHERE e_e_oid = @value1
UNION
SELECT * FROM relationship WHERE e_e_oid2 = @value2

Mỗi truy vấn con sẽ sử dụng chỉ mục thích hợp và sau đó kết quả sẽ được hợp nhất.

Tuy nhiên, trong những trường hợp đơn giản, MySQL có thể tự động thực hiện chuyển đổi này và nó đang làm như vậy trong truy vấn của bạn. Đó là những gì Using union trong EXPLAIN đầu ra có nghĩa là.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Emacs và MySQL trên Mac

  2. Sử dụng utf8mb4 với php và mysql

  3. Sử dụng 'OR' giữa mệnh đề HAVING và WHERE trong MySQL?

  4. Chuẩn SQL nói gì về dấu ngoặc đơn trong câu lệnh SQL UNION / EXCEPT / INTERSECT?

  5. Làm thế nào để loại bỏ khoảng trắng hàng đầu trong MySQL