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

Klausa WHERE saat bergabung menambahkan 4 detik ke waktu eksekusi

Penjelasan yang paling mungkin adalah bahwa MySQL memilih rencana eksekusi yang berbeda saat Anda menambahkan predikat itu.

Anda dapat membandingkan keluaran EXPLAIN dari dua kueri, yang satu dengan journey_day.day=3 predikat dan satu tanpa.

Saya berani menebak bahwa MySQL memilih urutan bergabung yang berbeda, dan MySQL memilih untuk menggunakan indeks yang memiliki day sebagai kolom utama ketika predikat disertakan. Dan kemungkinan itu menyebabkan lebih banyak baris untuk diakses dan diperiksa, atau mungkin MySQL menghasilkan kumpulan perantara yang besar sebelum memfilter baris.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Enkripsi DB dua arah aman bahkan dari Admin

  2. Menghitung nilai yang tidak bersebelahan

  3. apakah ada fungsi mysql untuk memecahkan kode entitas html?

  4. PDOSstatement - Gunakan aksen kuburan (`) di kolom?

  5. MySQL:Tentukan Kunci Utama Tabel Secara Dinamis