Rumah > pangkalan data > tutorial mysql > Bagaimana untuk menambah indeks yang cekap pada rentetan dalam MySQL

Bagaimana untuk menambah indeks yang cekap pada rentetan dalam MySQL

王林
Lepaskan: 2023-05-28 21:04:30
ke hadapan
950 orang telah melayarinya

Keperluan

Dalam keperluan harian, ia adalah operasi yang sangat biasa bagi pengguna untuk log masuk ke sistem menggunakan nombor telefon bimbit atau e-mel mereka Jadi bagaimana untuk membina indeks yang munasabah pada medan seperti nombor telefon bimbit atau e-mel?

Indeks awalan

Indeks awalan menggunakan sebahagian daripada nilai medan sebagai indeks. Jika anda tidak menyatakan panjang medan indeks semasa membuat indeks dalam MySQL, keseluruhan rentetan akan digunakan untuk membina indeks.

语句1:
alter table test add index idx(email);
语句2:
alter table test add index idx(email(8));
Salin selepas log masuk

Untuk pernyataan 1, indeks yang dibuat akan mengandungi keseluruhan nilai rentetan e-mel dalam setiap rekod.

Untuk pernyataan 2, indeks yang dibuat menyimpan 8 bait pertama medan e-mel dalam setiap rekod.

Kelebihan menggunakan indeks awalan adalah jelas, iaitu indeks akan menduduki lebih sedikit ruang, keseluruhan pokok indeks akan lebih padat, dan ketinggian pokok akan menjadi lebih rendah.

Tetapi selaras dengan itu, diskriminasi indeks akan menjadi lebih rendah, yang boleh menyebabkan peningkatan dalam bilangan baris imbasan indeks.

Apabila kita mencipta indeks, perbezaan indeks adalah penunjuk yang sangat penting. Lebih tinggi resolusi, lebih sedikit nilai pendua dan lebih cekap imbasan.

Merancang panjang indeks awalan dengan betul bukan sahaja dapat menjimatkan ruang, tetapi juga mengelakkan keperluan untuk mengimbas baris tambahan. Panjang khusus untuk digunakan disyorkan untuk dinilai dan diuji berdasarkan senario perniagaan sebenar kami.

Tertib songsang + indeks awalan

Tertib songsang + indeks awalan mempunyai senario penggunaan klasik, iaitu mengindeks nombor ID.

Anggaplah kita kini mahu mengekalkan maklumat identiti semua orang di bandar atau daerah, dengan pertanyaan mengikut nombor ID ialah senario frekuensi tinggi.

Nombor ID mempunyai 15 atau 18 digit Secara umumnya, 6 digit pertama nombor ID orang di bandar atau daerah yang sama secara amnya adalah sama jika nombor ID diindeks secara langsung , ia akan dibandingkan dengan ruang yang terbuang, yang membawa kepada kemerosotan prestasi. Jika anda menggunakan indeks awalan langsung, 6 bit pertama mempunyai sangat sedikit (atau bahkan tiada) diskriminasi, kerana kebanyakan nilai mempunyai 6 bit pertama yang sama.

Pada masa ini, faedah menggunakan tertib terbalik + indeks awalan ditunjukkan.

Kami mula-mula menyimpan kad ID dalam susunan terbalik, atau membuat medan nombor kad ID berlebihan dalam susunan terbalik, kemudian mengambil 6 digit pertama sebagai indeks awalan.

Perbezaan antara 6 digit terakhir kad ID pada asasnya cukup untuk kami Jika anda masih merasakan kelajuan pertanyaan tidak mencukupi, maka tiada masalah untuk mengambil 8 digit pertama.

Atas ialah kandungan terperinci Bagaimana untuk menambah indeks yang cekap pada rentetan dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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