Rumah  >  Artikel  >  pangkalan data  >  Adakah mysql mempunyai indeks bersama?

Adakah mysql mempunyai indeks bersama?

WBOY
WBOYasal
2022-06-16 10:52:212423semak imbas

Terdapat indeks bersama dalam mysql; indeks bersama merujuk kepada pengindeksan dua atau lebih medan lajur pada jadual, juga dikenali sebagai indeks komposit Jika hanya mana-mana lajur di belakang indeks bersama dilaksanakan Apabila mencari, indeks tidak akan mempunyai sebarang kesan. Sintaks untuk mencipta indeks ialah "buat nama indeks pada nama jadual (nama medan 1, nama medan 2,...)".

Adakah mysql mempunyai indeks bersama?

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.

Adakah mysql mempunyai indeks bersama?

Mysql mempunyai indeks bersama

Indeks bersama: juga dipanggil indeks komposit, merujuk kepada dua atau lebih indeks pada jadual Indeks lebih daripada satu medan lajur.

Mysql menggunakan medan dalam indeks dari kiri ke kanan Pertanyaan hanya boleh menggunakan sebahagian daripada indeks, tetapi hanya bahagian paling kiri. Contohnya, indeks ialah indeks utama (a,b,c), yang boleh menyokong carian dalam tiga kombinasi: a | a, b, c, tetapi tidak menyokong carian dalam kombinasi b dan c >

Petua: Hanya untuk Apabila mencari pada mana-mana lajur di belakang indeks bersama, indeks tidak akan mempunyai kesan

-- 用户表
CREATE TABLE `user` (
  `id` int(4) NOT NULL COMMENT '主键ID',
  `name` varchar(4) NOT NULL COMMENT '姓名',
  `age` int(3) NOT NULL COMMENT '年龄',
  PRIMARY KEY (`id`)
)

1. Buat indeks

Seperti yang ditunjukkan dalam rajah di atas, kami mencipta Sekarang bahawa kami mempunyai jadual pengguna, jika kami ingin mencipta indeks bersama pada nama dan lajur umur jadual, kami boleh menggunakan SQL berikut:

create index index_name_age on user (name,age);
Sintaks untuk mencipta indeks bersama: cipta nama indeks indeks pada nama jadual (Nama medan 1, nama medan 2,...)

2. Padamkan indeks

Jika kami merasakan bahawa indeks bersama yang dibuat tidak sesuai, kami boleh menggunakan indeks bersama padam SQL berikut:

drop index index_name_age on user;
atau gunakan: tukar nama jadual jadual jatuhkan nama indeks indeks

alter table user drop index index_name_age;

3. Apabila indeks dengan nama yang sama wujud, ralat akan dilaporkan

Andaikan indeks gabungan (index_name_age) telah dibuat Jika anda mencipta indeks itu semula, ralat berikut akan dilaporkan:

Query : create index index_name_age on user (name,age)
Error Code : 1061
Duplicate key name 'index_name_age'

4 Lihat indeks

Lihat sintaks indeks: tunjukkan indeks daripada nama jadual

Pembelajaran yang disyorkan:
SHOW INDEX FROM USER;
tutorial video mysql

Atas ialah kandungan terperinci Adakah mysql mempunyai indeks bersama?. 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