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

Hiệu suất toán tử MySQL IN trên số lượng giá trị (lớn?)

Nói chung, nếu IN danh sách quá lớn (đối với một số giá trị không được xác định là 'quá lớn' thường nằm trong vùng 100 hoặc nhỏ hơn), sẽ hiệu quả hơn khi sử dụng phép nối, tạo một bảng tạm thời nếu cần để chứa các số.

Nếu các con số là một tập hợp dày đặc (không có khoảng trống - mà dữ liệu mẫu gợi ý), thì bạn có thể làm tốt hơn nữa với WHERE id BETWEEN 300 AND 3000 .

Tuy nhiên, có lẽ là có khoảng trống trong tập hợp, tại thời điểm đó, tốt hơn là nên đi cùng với danh sách các giá trị hợp lệ sau cùng (trừ khi khoảng trống là tương đối ít về số lượng, trong trường hợp đó bạn có thể sử dụng:

WHERE id BETWEEN 300 AND 3000 AND id NOT BETWEEN 742 AND 836

Hoặc bất kỳ khoảng trống nào.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Điền JFreechart TimeSeriesCollection từ Mysql DB?

  2. Ngoại lệ Java JDBC MySQL:Hoạt động không được phép sau khi đóng ResultSet

  3. Có thể thực hiện một khóa ngoại MySQL cho một trong hai bảng khả thi không?

  4. Cách tạo cột biến giả cho hàng nghìn danh mục trong Google BigQuery?

  5. MySQL's thay thế cho T-SQL's WITH TIES