Kejadian kegagalan indeks: 1. Pertanyaan serupa bermula dengan "%"; 2. Indeks tidak digunakan sebelum dan selepas pernyataan atau pada masa yang sama 3. Indeks lajur pertama tidak digunakan dalam indeks gabungan; 4. Digunakan pada lajur indeks "IS NULL" atau "IS NOT NULL" operasi;
Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.
Indeks ialah struktur pangkalan data khas, yang terdiri daripada satu atau lebih lajur dalam jadual data. Ia boleh digunakan untuk menanya rekod dengan cepat dengan nilai tertentu dalam jadual data. Bahagian ini akan menerangkan secara terperinci maksud, fungsi, kebaikan dan keburukan indeks.
Melalui indeks, apabila menanyakan data, anda tidak perlu membaca semua maklumat yang direkodkan, tetapi hanya menanya lajur indeks. Jika tidak, sistem pangkalan data akan membaca semua maklumat setiap rekod untuk dipadankan.
Indeks boleh dibandingkan dengan urutan fonetik Kamus Xinhua. Sebagai contoh, jika anda ingin mencari perkataan "ku", jika anda tidak menggunakan urutan fonetik, anda perlu mencarinya halaman demi halaman dalam 400 halaman kamus. Walau bagaimanapun, jika anda mengekstrak pinyin untuk membentuk urutan fonetik, anda hanya perlu mencarinya terus daripada jadual fonetik lebih daripada 10 halaman. Ini boleh menjimatkan banyak masa.
Oleh itu, menggunakan indeks boleh meningkatkan kelajuan pertanyaan pangkalan data dan meningkatkan prestasi sistem pangkalan data dengan berkesan.
Beberapa situasi di mana pertanyaan indeks gagal:
2. Tiada indeks digunakan sebelum dan selepas pernyataan atau.
Apabila hanya satu daripada medan pertanyaan kiri dan kanan daripada atau ialah indeks, indeks itu akan menjadi tidak sah apabila kedua-dua medan pertanyaan kiri dan kanan daripada atau ialah indeks
3. Indeks gabungan, bukannya menggunakan indeks lajur pertama, indeks akan menjadi tidak sah.
4 Jika jenis lajur ialah rentetan, data mesti dipetik dalam petikan, jika tidak, indeks tidak akan digunakan <.>
Jenis data mempunyai penukaran tersirat. Jika varchar tidak disertakan dalam petikan tunggal, ia mungkin ditukar secara automatik kepada jenis int, membatalkan indeks dan menyebabkan imbasan jadual penuh.5. Gunakan IS NULL atau IS NOT NULL operasi pada lajur indeks.
Indeks tidak mengindeks nilai nol, jadi operasi sedemikian tidak boleh menggunakan indeks dan boleh dikendalikan dengan cara lain, seperti: jenis angka, hakim lebih besar daripada 0, jenis rentetan menetapkan nilai lalai, hakim Ia boleh sama dengan nilai lalai. (Ini salah!)
Penjelasan tentang ralat di atas: Di sini saya akan kembali- Buat jadual emp Buat indeks baharu Lihat indeks Laksanakan pernyataan SQL Anda boleh mendapati bahawa indeksRingkasan: Gunakan operasi IS NULL atau IS NOT NULL pada lajur indeks, dan indeks tidak semestinya gagal! ! !
6. Jangan gunakan, <>, != pada medan indeks.
Pengendali ketidaksamaan tidak akan sekali-kali menggunakan indeks, jadi pemprosesannya hanya akan menghasilkan imbasan jadual penuh. Kaedah pengoptimuman: tukar kunci<>0 kepada kunci>0 atau kunci<0.
7. (Indeks ialah emp(ename,empno,sal))
8. Apabila imbasan jadual penuh kelajuan adalah Apabila kelajuan indeks adalah pantas, mysql akan menggunakan imbasan jadual penuh, dan indeks akan gagal pada masa ini.
Jika mysql menganggarkan bahawa menggunakan imbasan jadual penuh adalah lebih pantas daripada menggunakan indeks, maka jangan gunakan indeks
[Cadangan berkaitan: tutorial video mysql ]
Atas ialah kandungan terperinci Apakah situasi di mana indeks mysql gagal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!