Rumah >pangkalan data >tutorial mysql >Bagaimana untuk membuat indeks dalam mysql

Bagaimana untuk membuat indeks dalam mysql

PHPz
PHPzasal
2023-04-20 10:11:5716908semak imbas

MySQL ialah pangkalan data hubungan yang digunakan secara meluas yang memainkan peranan penting dalam pemprosesan data. Ia menyokong banyak operasi, termasuk penciptaan indeks. Indeks adalah salah satu mekanisme penting dalam pangkalan data untuk meningkatkan kecekapan pertanyaan. Apabila menggunakan MySQL, pengindeksan adalah penting. Artikel ini akan memperkenalkan konsep indeks MySQL dan cara menciptanya.

  1. Konsep indeks
    Indeks ialah struktur data yang digunakan untuk carian pantas dalam pangkalan data. Dengan menyimpan kata kunci dan maklumat lokasinya dalam jadual data dalam indeks, anda boleh mencari baris data yang berkaitan dengan cepat dan meningkatkan kecekapan pertanyaan. Dalam MySQL, indeks boleh dibahagikan kepada dua jenis, indeks B-tree dan indeks hash.
  2. Indeks B-tree
    B-tree ialah struktur pokok berbilang lapisan. Ia adalah struktur data indeks yang biasa digunakan. Dalam pokok B, setiap nod mengandungi kunci yang menunjuk ke nod seterusnya. Dalam MySQL, indeks B-tree boleh digunakan untuk semua jenis data. Secara lalai, setiap jadual dalam MySQL secara automatik menjana indeks B-tree bernama PRIMER untuk memastikan keunikan setiap baris.

Apabila membuat indeks, anda harus menyemak jenis data dan panjang lajur indeks untuk memastikan ia memenuhi keperluan. Untuk memastikan kecekapan indeks, adalah disyorkan untuk menggunakan perintah EXPLAIN yang disertakan dengan MySQL untuk melihat rancangan pelaksanaan pernyataan. Jika keseluruhan jadual diimbas, adalah disyorkan untuk mengoptimumkan pernyataan atau menambah indeks.

  1. Indeks cincang
    Indeks cincang ialah struktur data yang diindeks oleh nilai cincang kata kunci. Dalam MySQL, indeks hash hanya berfungsi pada jadual dalam memori.

Indeks cincang boleh mempercepatkan carian, tetapi dalam beberapa kes tertentu, ia boleh menjadikan pertanyaan lebih perlahan. Sebagai contoh, indeks cincang tidak boleh digunakan apabila pengisihan diperlukan. Dalam MySQL, penggunaan indeks cincang adalah sangat rendah, kecuali apabila memproses jadual dalam memori.

  1. Penciptaan Indeks
    Dalam MySQL, gunakan pernyataan CREATE INDEX untuk mencipta indeks. Diandaikan di sini bahawa jadual Orang perlu dibuat, termasuk medan id, nama dan umur.

Untuk mencipta indeks B-tree, anda boleh menggunakan pernyataan SQL berikut:

CREATE INDEX idx_name ON Person(name(50));

Pernyataan di atas mencipta indeks bernama idx_name dalam medan nama jadual Person . Di mana nama(50) menunjukkan bahawa panjang maksimum medan ini ialah 50.

Perlu diingatkan bahawa pengindeksan akan menduduki sumber cakera dan memori, jadi bilangan indeks harus ditentukan berdasarkan situasi sebenar dan keperluan corak akses. Adalah disyorkan untuk menguji prestasi terlebih dahulu sebelum memutuskan sama ada untuk menggunakannya.

  1. Pengoptimuman indeks
    Dalam pangkalan data, cara menggunakan indeks ialah strategi pengoptimuman yang sangat kritikal. Beberapa cara untuk mengoptimumkan indeks adalah seperti berikut:

5.1 Imbasan liputan indeks
Imbasan liputan indeks bermakna semasa proses pertanyaan, hanya indeks itu sendiri digunakan tanpa akses jadual. Ini boleh meningkatkan kecekapan pertanyaan.

Sebagai contoh, jika anda perlu mencari semua nama orang yang berumur lebih daripada 30 tahun dalam jadual Orang, anda boleh menggunakan pernyataan SQL berikut:

SELECT name FROM Person WHERE age > 30;

Jika medan umur telah diindeks, anda boleh menggunakan imbasan Liputan indeks untuk mengoptimumkan pertanyaan:

SELECT name FROM Person WHERE age > 30 AND name IS NOT NULL;

Memandangkan indeks mengandungi medan nama, indeks boleh digunakan terus semasa membuat pertanyaan tanpa akses lanjut ke jadual.

5.2 Prinsip awalan paling kiri
Prinsip awalan paling kiri bermakna apabila menggunakan indeks berbilang lajur, indeks boleh digunakan untuk pengoptimuman hanya apabila lajur pertama indeks memenuhi syarat pertanyaan. Ini bermakna jika anda perlu melakukan pertanyaan kabur pada berbilang lajur, anda harus mempertimbangkan pengindeksan dengan menggabungkan berbilang lajur ke dalam satu lajur.

5.3 Selektiviti indeks
Selektiviti indeks merujuk kepada perkadaran indeks yang digunakan dalam pertanyaan. Jika selektiviti rendah, banyak baris akan diimbas, yang akan mengurangkan kecekapan pertanyaan. Indeks yang sesuai hendaklah dipilih berdasarkan bilangan pertanyaan dan keperluan corak capaian.

  1. Ringkasan
    Indeks ialah mekanisme penting untuk mengoptimumkan pertanyaan dalam pangkalan data MySQL. Apabila menggunakan indeks, anda mesti memilih indeks yang sesuai berdasarkan keperluan yang berbeza, dan mengoptimumkan indeks melalui imbasan liputan, prinsip awalan paling kiri dan selektiviti indeks untuk meningkatkan kecekapan pertanyaan. Matlamat utama adalah untuk meningkatkan prestasi pertanyaan pangkalan data dan menjadikan operasi pertanyaan lebih cekap dan lebih pantas.

Atas ialah kandungan terperinci Bagaimana untuk membuat 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