Apakah situasi di mana indeks mysql gagal?

青灯夜游
Lepaskan: 2022-01-05 15:46:55
asal
57463 orang telah melayarinya

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;

Apakah situasi di mana indeks mysql gagal?

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:

1 seperti bermula dengan %, indeks tidak sah; seperti Apabila tiada % dalam awalan dan % dalam akhiran, indeks adalah sah.

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 indeks

Ringkasan: 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan