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

tại sao sql với 'tồn tại' chạy chậm hơn so với 'trong' bằng MySQL

Tôi nghĩ rằng bạn có một chút nhầm lẫn, bạn đang có một ý tưởng sai lầm, 'EXISTS' hoạt động nhanh hơn 'IN' và tôi đang cố gắng làm cho bạn hiểu lý do ..

EXISTS trả về một boolean và sẽ trả về một boolean trong trận đấu đầu tiên. Vì vậy, nếu bạn đang xử lý các bản sao / bội số, 'EXISTS' sẽ thực thi nhanh hơn so với 'IN' hoặc 'JOIN' tùy thuộc vào dữ liệu và nhu cầu.

Trong khi, 'IN' là đường cú pháp cho mệnh đề OR. Mặc dù nó rất phù hợp, nhưng có một số vấn đề khi xử lý rất nhiều giá trị cho phép so sánh đó (phía bắc là 1.000). đó là lý do tại sao 'IN' luôn tương đối chậm hơn so với 'EXISTS'.

Tôi hy vọng rằng tôi đã làm rõ sự nhầm lẫn của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql - Lỗi PDO - Tên danh mục không hợp lệ:1046 Không có cơ sở dữ liệu nào được chọn

  2. MySQL Levenshtein

  3. Bỏ qua cột khi chèn vào MySQL

  4. Bộ nhớ đệm truy vấn MySQL:giới hạn ở kích thước bộ nhớ cache tối đa là 128 MB?

  5. Erlang emysql Vấn đề mã hóa biểu tượng cảm xúc iPhone