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

Mengapa kueri ini menggunakan di mana alih-alih indeks?

Keluaran dari EXPLAIN terkadang bisa menyesatkan.

Misalnya, filesort tidak ada hubungannya dengan file, using where tidak berarti Anda menggunakan WHERE klausa, dan using index dapat muncul di tabel tanpa indeks tunggal yang ditentukan.

Using where hanya berarti ada beberapa klausa pembatas pada tabel (WHERE atau ON ), dan tidak semua catatan akan dikembalikan. Perhatikan bahwa LIMIT tidak dihitung sebagai klausa pembatas (walaupun bisa).

Using index berarti bahwa semua informasi dikembalikan dari indeks, tanpa mencari catatan dalam tabel. Ini hanya mungkin jika semua bidang yang diperlukan oleh kueri tercakup oleh indeks.

Karena Anda memilih * , Ini tidak mungkin. Bidang selain category_id , board_id , display dan order tidak tercakup oleh indeks dan harus dicari.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Datetime terbaru dari indeks mysql unik

  2. Urutan MySQL berdasarkan masalah

  3. Amazon DynamoDB - Merancang tabel berdasarkan pertemanan

  4. Batasi Eksekusi PHP?

  5. Kiat untuk Bermigrasi dari Basis Data Proprietary ke Open Source