Rumah >pangkalan data >tutorial mysql >Adakah dalam menggunakan indeks dalam mysql?

Adakah dalam menggunakan indeks dalam mysql?

WBOY
WBOYasal
2022-05-27 15:43:066652semak imbas

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.

Adakah dalam menggunakan indeks dalam mysql?

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.

Adakah dalam mysql menggunakan indeks?

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

Senario 1: Apabila nilai dalam IN hanya mempunyai satu kunci utama

Adakah dalam menggunakan indeks dalam mysql?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 IN

Melihat gambar di atas, kami mendapati tiada indeks pada masa ini, tetapi imbasan jadual penuh. Adakah dalam menggunakan indeks dalam mysql?

Mari kita bincangkan kesimpulannya

Kesimpulan: 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.

Adakah dalam menggunakan indeks dalam mysql?Pembelajaran yang disyorkan:

tutorial video mysql

Atas ialah kandungan terperinci Adakah dalam menggunakan indeks dalam mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn