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

Tại sao sử dụng IN (...) khi chọn trên các trường được lập chỉ mục, sẽ giết chết hiệu suất của truy vấn SELECT?

Thành thật mà nói, tuyên bố đó mâu thuẫn với nhiều gợi ý mà tôi đã đọc trong các sách và bài báo về MySQL.

Đây là một ví dụ: http://www.mysqlperformanceblog.com/2010/01/09/getting-around-optimizer-limitations-with-an-in-list/

Hơn nữa, expr IN (giá trị, ...) bản thân nó có các cải tiến bổ sung để xử lý các danh sách giá trị lớn, vì nó được cho là được sử dụng như một sự thay thế hữu ích cho một số range nhất định truy vấn:

Việc tiếp tục lạm dụng IN có thể dẫn đến truy vấn chậm. Một số trường hợp được ghi nhận trong bài viết .



  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 lấy dữ liệu tuần trước trong MySQL

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

  3. Chuyển đổi giây thành ngày, giờ, phút, giây (MySQL)

  4. Bảng tổng hợp MySQL với tiêu đề động dựa trên dữ liệu cột đơn

  5. Cách tốt nhất để lưu trữ cài đặt người dùng trong MySQL?