Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kinerja MySQL - IN Clause vs. Equals (=) untuk Nilai Tunggal

Sebagian besar jawaban lain tidak memberikan sesuatu yang konklusif, hanya spekulasi. Jadi, berdasarkan saran bagus dari jawaban @Namphibian , saya menjalankan EXPLAIN pada beberapa pertanyaan yang mirip dengan yang ada di OP.

Hasilnya di bawah ini:

EXPLAIN untuk kueri dengan = 1 :

EXPLAIN untuk kueri dengan IN(1) :

EXPLAIN untuk kueri dengan IN(1,2,3) :

Seperti yang Anda lihat, MySQL memang mengoptimalkan IN(1) menjadi sama dengan = 1 dalam jenis kueri ini. jawaban @mes tampaknya menunjukkan bahwa hal ini mungkin tidak selalu terjadi pada kueri yang lebih kompleks.

Jadi, bagi yang terlalu malas untuk menjalankan EXPLAIN sendiri, sekarang Anda tahu. Dan ya, Anda mungkin ingin menjalankan EXPLAIN pada permintaan Anda sendiri untuk memastikan bahwa itu ditangani dengan cara ini. :-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masukkan sejumlah besar variabel ke dalam tabel menggunakan PDO

  2. pembaruan mysql spesifik berdasarkan grup berdasarkan data

  3. Tidak dapat memasukkan array ke dalam database

  4. Kolom Pembaruan MySQL dari kolom lain di tabel yang sama

  5. PDO::__construct():Server mengirim charset (255) yang tidak diketahui klien. Tolong, laporkan ke pengembang