Rumah > Artikel > pangkalan data > apakah perbezaan antara indeks mysql
Perbezaan: 1. Nilai lajur indeks indeks unik mestilah unik, dan nilai nol dibenarkan 2. Nilai indeks indeks kunci utama mestilah unik, tetapi nilai nol adalah tidak dibenarkan; 3. Indeks gabungan hanya boleh digunakan dalam keadaan pertanyaan Indeks akan digunakan hanya apabila medan pertama digunakan semasa membuat indeks digunakan; .
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.
jenis indeks mysql:
Indeks kunci utama: Perbezaan antara indeks unik dan indeks unik ialah nilai nol tidak dibenarkan semasa membuat kunci utama Indeks ini dibuat secara automatik.
Indeks biasa: Indeks paling asas, tiada sekatan khas.
Indeks unik: Perbezaan daripada indeks biasa ialah nilai lajur indeks mestilah unik, tetapi ia boleh mempunyai nilai nol.
Indeks teks penuh: Hanya boleh digunakan dalam jadual menggunakan enjin storan Myisam, untuk lajur data yang lebih besar.
Indeks gabungan: merujuk kepada indeks yang dibuat pada berbilang medan Indeks akan digunakan hanya jika medan pertama semasa membuat indeks digunakan dalam keadaan pertanyaan. Apabila menggunakan indeks gabungan, ikuti set awalan paling kiri
Contoh adalah seperti berikut:
1 Indeks biasa
adalah yang paling banyak indeks asas Tiada sekatan. Ia mempunyai kaedah penciptaan berikut:
(1) Buat indeks terus
CREATE INDEX index_name ON table(column(length))
(2) Tambah indeks dengan mengubah suai struktur jadual
ALTER TABLE table_name ADD INDEX index_name ON (column(length))
( 3 ) Apabila mencipta jadual, cipta indeks
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), INDEX index_name (title(length)) )
(4) Padamkan indeks
DROP INDEX index_name ON table
2. Indeks unik
adalah sama seperti yang sebelumnya Indeks biasa adalah serupa, kecuali nilai lajur indeks mestilah unik, tetapi nilai nol dibenarkan. Dalam kes indeks komposit, gabungan nilai lajur mestilah unik. Ia mempunyai kaedah penciptaan berikut:
(1) Cipta indeks unik
CREATE UNIQUE INDEX indexName ON table(column(length))
(2) Ubah suai struktur jadual
ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
(3) Cipta Jadual Nyatakan terus
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , UNIQUE indexName (title(length)) );
3. Indeks kunci utama
ialah indeks unik khas Sesuatu jadual hanya boleh mempunyai satu kunci utama dan tiada nilai nol dibenarkan. Secara amnya, indeks kunci utama dicipta pada masa yang sama semasa mencipta jadual:
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) NOT NULL , PRIMARY KEY (`id`) );
4 Indeks gabungan
merujuk kepada indeks yang dibuat pada berbilang medan. , yang hanya boleh digunakan dalam keadaan pertanyaan Indeks akan digunakan hanya jika medan pertama yang digunakan semasa membuat indeks digunakan. Apabila menggunakan indeks gabungan, ikut set awalan paling kiri
ALTER TABLE `table` ADD INDEX name_city_age (name,city,age);
5. Indeks teks penuh
digunakan terutamanya untuk mencari kata kunci dalam teks, dan bukannya secara langsung dalam nilai indeks dibandingkan. Indeks teks penuh sangat berbeza daripada indeks lain Ia lebih seperti enjin carian dan bukannya padanan parameter ringkas pernyataan where. Indeks teks penuh digunakan dengan padanan melawan operasi dan bukannya pernyataan umum di mana tambah suka. Ia boleh digunakan dalam membuat jadual, mengubah jadual dan mencipta indeks, tetapi pada masa ini hanya indeks teks penuh boleh dibuat pada lajur char, varchar dan teks. Perlu dinyatakan bahawa apabila jumlah data adalah besar, adalah lebih baik untuk meletakkan data ke dalam jadual tanpa indeks global dan kemudian gunakan indeks CREATE untuk mencipta indeks teks penuh daripada mula-mula membuat teks penuh untuk jadual dan kemudian tulis data ke dalamnya.
(1) Ia sesuai untuk menambah indeks teks penuh semasa membuat jadual
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), FULLTEXT (content) );
(2) Ubah suai struktur jadual untuk menambah indeks teks penuh
ALTER TABLE article ADD FULLTEXT index_content(content)
(3) Buat indeks terus
CREATE FULLTEXT INDEX index_content ON article(content)
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci apakah perbezaan antara indeks mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!