Rumah >pangkalan data >tutorial mysql >Adakah dalam menggunakan indeks dalam mysql?
Terdapat dua kes sama ada in akan menggunakan indeks dalam mysql: 1. Apabila julat nilai in adalah kecil, in akan menggunakan indeks 2. Apabila julat nilai in adalah besar, in tidak akan gunakan indeks , sebaliknya imbasan jadual penuh akan digunakan. Kerana apabila terdapat terlalu banyak dalam keadaan, banyak data akan dikembalikan, yang boleh menyebabkan limpahan memori dalam timbunan aplikasi dan membawa kepada kegagalan indeks.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.
Kesimpulan: IN pasti akan diindeks, tetapi apabila julat nilai IN besar, ia akan menyebabkan indeks gagal dan imbasan jadual penuh akan digunakan
Alat visualisasi navicat menggunakan fungsi explain untuk melihat maklumat pelaksanaan sql
eq_ref >ref > >indeks: Satu lagi bentuk imbasan jadual penuh, Cuma kaedah pengimbasannya adalah mengikut urutan indeks
julat: imbasan indeks julat Berbanding dengan imbasan jadual penuh indeks, ia mempunyai sekatan julat. jadi ia lebih baik daripada indeks
ref : Lajur keadaan carian menggunakan indeks dan bukan kunci utama atau unik. Sebenarnya, ini bermakna walaupun indeks digunakan, nilai lajur indeks tidak unik dan terdapat pendua. Dengan cara ini, walaupun sekeping data pertama cepat ditemui menggunakan indeks, ia masih tidak boleh berhenti dan perlu mengimbas julat kecil berhampiran nilai sasaran. Tetapi kelebihannya ialah ia tidak perlu mengimbas keseluruhan jadual, kerana indeks dipesan, dan walaupun terdapat nilai pendua, ia akan diimbas dalam julat yang sangat kecil.
const: Biasanya, jika kunci utama diletakkan selepas sebagai pertanyaan bersyarat, pengoptimum mysql boleh mengoptimumkan pertanyaan dan menukarnya menjadi pemalar. Bagi cara dan bila untuk menukar, ini bergantung pada pengoptimum
Secara umumnya, adalah perlu untuk memastikan bahawa pertanyaan mencapai sekurang-kurangnya tahap julat, sebaik-baiknya ref Apabila indeks dan semua muncul dalam jenis, ini bermakna bahawa keseluruhan jadual digunakan Imbasan tidak menggunakan indeks dan tidak cekap Pada masa ini, SQL perlu ditala.
Apabila Menggunakan fail atau Menggunakan sementara muncul dalam tambahan, ini bermakna indeks tidak boleh digunakan dan pengoptimuman mesti dilakukan secepat mungkin.
possible_keys: Indeks digunakan oleh sql
kunci: Memaparkan kunci (indeks) yang MySQL benar-benar memutuskan untuk digunakan. Jika tiada indeks dipilih, kuncinya ialah NULL
baris: Memaparkan bilangan baris yang MySQL fikir ia mesti periksa semasa melaksanakan pertanyaan.
Senario 2: Kembangkan julat nilai dalam IN
Indeks masih digunakan pada masa ini, tetapi kecekapan dikurangkan Senario 3 : Teruskan mengembangkan julat nilai INMelihat gambar di atas, kami mendapati tiada indeks pada masa ini, tetapi imbasan jadual penuh.
Mari kita bincangkan kesimpulannyaKesimpulan: IN pasti akan menggunakan indeks, tetapi apabila julat nilai IN besar, ia akan menyebabkan indeks gagal dan menggunakan imbasan jadual penuh. By the way: Jika tidak in digunakan, indeks tidak akan digunakan.Pembelajaran yang disyorkan:
tutorial video mysqlAtas ialah kandungan terperinci Adakah dalam menggunakan indeks dalam mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!