Rumah  >  Artikel  >  pangkalan data  >  Pengenalan Lanjutan MySQL kepada Indeks (Perkongsian Ringkasan)

Pengenalan Lanjutan MySQL kepada Indeks (Perkongsian Ringkasan)

WBOY
WBOYke hadapan
2022-11-23 16:51:552010semak imbas

Artikel ini membawa anda pengetahuan yang berkaitan tentang mysql, yang terutamanya memperkenalkan kandungan yang berkaitan tentang pengindeksan, termasuk kelebihan dan keburukan pengindeksan, klasifikasi indeks, struktur indeks dan pengindeksan Mari kita lihat penciptaan dan isu-isu lain di bawah saya harap ia akan membantu semua orang.

Pengenalan Lanjutan MySQL kepada Indeks (Perkongsian Ringkasan)

Pembelajaran yang disyorkan: tutorial video mysql

Apakah itu indeks

Takrifan rasmi MySQL bagi indeks: Indeks (Indeks) ialah struktur data yang membantu MySQL memperoleh data dengan cekap.
Intipati indeks: Indeks ialah struktur data.
Tujuan indeks: Tingkatkan kecekapan pertanyaan, yang boleh dibandingkan dengan kamus.

注:Indeks boleh difahami secara ringkas sebagai "struktur data carian pantas diisih". Secara umumnya, indeks itu sendiri juga sangat besar dan tidak boleh disimpan sepenuhnya dalam ingatan, jadi indeks selalunya disimpan pada cakera dalam bentuk fail indeks

我们平常所说的索引,如果没有特别指明,都是指B树(多路搜索树,并不一定是二叉的)结构组织的索引. Antaranya, indeks berkelompok, indeks kompaun, indeks awalan dan indeks unik semuanya menggunakan indeks B-tree secara lalai, secara kolektif dirujuk sebagai indeks. Kebaikan dan Kelemahan kecekapan Pengindeksan, mengurangkan kos IO pangkalan data

Mengisih data melalui lajur indeks, mengurangkan kos pengisihan data dan mengurangkan penggunaan CPU

Kelemahan

Indeks sebenarnya ialah jadual yang menyimpan kunci utama dan medan indeks dan menunjuk kepada rekod jadual entiti, jadi lajur indeks juga akan digunakan space

Walaupun indeks sangat meningkatkan kelajuan pertanyaan, ia juga mengurangkan kelajuan mengemas kini jadual, seperti INSERT, UPDATE dan DELETE pada jadual. Kerana semasa mengemas kini jadual, MySQL bukan sahaja perlu menyimpan data, tetapi juga fail indeks Setiap kali medan yang menambah lajur indeks dikemas kini, maklumat indeks selepas perubahan nilai utama yang disebabkan oleh kemas kini akan diselaraskan

Indeks hanyalah satu faktor untuk meningkatkan kecekapan Jika MySQL anda mempunyai jadual dengan jumlah data yang besar, anda perlu meluangkan masa meneliti cara membina indeks terbaik atau mengoptimumkan pertanyaan

Klasifikasi indeks MySQL

Indeks nilai tunggal

Definisi:

Indeks hanya mengandungi lajur tunggal dan jadual boleh mempunyai berbilang indeks lajur tunggal

Secara amnya, jadual tidak boleh mempunyai lebih daripada 5 indeks paling banyak

Indeks unik

Definisi: Nilai lajur indeks mestilah unik, tetapi nilai nol dibenarkan

注:Indeks kompaun

Definisi:
Indeks mengandungi berbilang lajur

Sintaks asas

Buat

Padam

  • Lihat
CREATE [UNIQUE] INDEX indexName ON mytable(columnnname(length));ALTER mytable ADD [UNIQUE] INDEX [indexName] ON (columnname(length))
  • Gunakan arahan ALTER
 DROP INDEX [indexName] ON mytable;
  • Terdapat empat cara untuk menambah indeks pada jadual data:
UBAH JADUAL tbl_name TAMBAHKAN KUNCI UTAMA (column_list): Pernyataan ini menambah kunci utama, yang bermaksud bahawa nilai indeks mestilah unik dan tidak boleh NULL.
SHOW INDEX FROM table_name\G
  • UBAH JADUAL tbl_name TAMBAH UNIQUE index_name(column_list): Nilai indeks yang dicipta oleh pernyataan ini mestilah unik (kecuali NULL, NULL mungkin muncul beberapa kali).

UBAH JADUAL tbl_name TAMBAH INDEX index_name(column_list): Tambahkan indeks biasa, nilai indeks boleh muncul beberapa kali.

UBAH JADUAL tbl_name TAMBAH FULLTEXT index_name(column_list): Pernyataan ini menentukan indeks sebagai FULLTEXT untuk pengindeksan teks penuh.

[UTAMA |. UNIK |.

Apabila membuat jadual data, jenis indeks boleh ditinggalkan.

[INDEX |. KEY]: Menunjukkan untuk membuat indeks dalam jadual data.

Struktur indeks MySQL

Indeks BTree注:

Indeks Hash

  • Indeks Teks Penuh Teks Penuh

  • Indeks R-Tree

  • Penciptaan indeks

  • Dalam keadaan yang mana perlu untuk mencipta indeks
  • Kunci utama secara automatik Cipta indeks unik

Medan yang kerap digunakan sebagai syarat pertanyaan hendaklah diindeks

Medan yang dikaitkan dengan yang lain jadual dalam pertanyaan, perhubungan kunci asing harus diindeks

  • Medan yang kerap dikemas kini tidak sesuai untuk membuat indeks, kerana setiap kemas kini bukan sahaja mengemas kini rekod tetapi juga mengemas kini indeks

  • Digunakan dalam keadaan Di mana Tiada indeks akan dibuat untuk medan yang tidak boleh dicapai

  • Isu pemilihan kunci tunggal/indeks gabungan (indeks gabungan cenderung dibuat di bawah konkurensi tinggi)

  • Medan pengisihan dalam pertanyaan, jika medan pengisihan melepasi indeks Akses akan meningkatkan kelajuan pengisihan dengan ketara

  • Statistik atau medan kumpulan dalam pertanyaan

Apakah situasi yang tidak sesuai untuk dibuat indeks

  • Rekod jadual terlalu sedikit

  • Jadual yang kerap ditambah, dipadam atau diubah suai

  • Data adalah medan jadual pendua dan teragih sama rata, jadi hanya lajur data yang paling kerap ditanya dan paling kerap diisih harus diindeks.
    Ambil perhatian bahawa jika lajur data mengandungi banyak kandungan berulang, mengindeks ia tidak akan memberi banyak kesan praktikal

Pembelajaran yang disyorkan: tutorial video mysql

Atas ialah kandungan terperinci Pengenalan Lanjutan MySQL kepada Indeks (Perkongsian Ringkasan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam