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

Hiệu suất MySQL - Mệnh đề IN so với Bằng (=) cho một giá trị duy nhất

Hầu hết các câu trả lời khác không cung cấp bất cứ điều gì kết luận, chỉ là suy đoán. Vì vậy, dựa trên lời khuyên hữu ích từ câu trả lời của @ Namphibian , Tôi đã chạy một EXPLAIN trên một số truy vấn tương tự như truy vấn trong OP.

Kết quả như sau:

EXPLAIN cho một truy vấn với = 1 :

EXPLAIN cho một truy vấn với IN(1) :

EXPLAIN cho một truy vấn với IN(1,2,3) :

Như bạn thấy, MySQL tối ưu hóa IN(1) giống với = 1 trong loại truy vấn này. câu trả lời của @ mes Tuy nhiên, dường như cho thấy rằng điều này có thể không phải lúc nào cũng đúng với các truy vấn phức tạp hơn.

Vì vậy, đối với những người quá lười biếng để chạy EXPLAIN chính họ, bây giờ bạn biết. Và có, bạn có thể muốn chạy EXPLAIN trên truy vấn của riêng bạn để đảm bảo rằng nó được xử lý theo cách này. :-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối MySQL từ xa trong PHP

  2. Làm cách nào để hiển thị Mảng đa chiều được chèn vào bảng MySQL?

  3. Ruby on Rails MySQL # 08S01Bad bắt tay - hạ cấp MySQL?

  4. làm thế nào để có được các hàng riêng biệt với giá trị tối đa

  5. Giới hạn kết hợp bên trái để trả về một kết quả?