MySQL ma'lumotlar bazasi indeksi turi/yaratish/foydalanish kombinatsiyasi MySQL-da ALTER bayonotidan foydalanish

MySQLindeks turi/yaratish/foydalanish kombinatsiyasini o'zgartirishMySQLbuyruq bayonotidan foydalanish

MySQL indekslari

MySQL indeksini yaratish MySQL ning samarali ishlashi uchun juda muhim va indeks MySQL ning qidirish tezligini sezilarli darajada oshirishi mumkin.

Misol uchun, agar to'g'ri ishlab chiqilgan va indekslangan MySQL Lamborghini bo'lsa, indekslangan dizayni bo'lmagan MySQL insonning uch g'ildirakli velosipedidir.

Indeks bir ustunli indeks va kompozit indeksga bo'linadi.Bir ustunli indeks, ya'ni indeks faqat bitta ustunni o'z ichiga oladi, jadvalda bir nechta bitta ustunli indekslar bo'lishi mumkin, ammo bu kompozit indeks emas.Kompozit indeks, ya'ni indeks bir nechta ustunlarni o'z ichiga oladi.

Indeksni yaratishda indeks SQL so'roviga tegishli shart ekanligiga ishonch hosil qilishingiz kerak (odatda WHERE bandining sharti sifatida).

Aslida, indeks ham jadval bo'lib, jadval birlamchi kalit va indeks maydonlarini saqlaydi va ob'ektlar jadvalining yozuvlariga ishora qiladi.

Yuqorida aytilganlarning barchasi indekslardan foydalanishning afzalliklari haqida, ammo indekslardan ortiqcha foydalanish suiiste'mollikka olib keladi.Shuning uchun indeksning ham kamchiliklari bo'ladi: indeks so'rovlar tezligini sezilarli darajada yaxshilagan bo'lsada, jadvalni INSERT, UPDATE va DELETE kabi jadvalni yangilash tezligini pasaytiradi.Chunki jadvalni yangilashda MySQL nafaqat ma’lumotlarni, balki indeks faylini ham saqlaydi.

Disk maydonini iste'mol qiladigan indeks faylini indekslash.


normal indeks

indeks yaratish

Bu eng asosiy indeks, unda hech qanday cheklovlar yo'q.U quyidagi yo'llar bilan yaratilishi mumkin:

CREATE INDEX indexName ON mytable(username(length)); 

CHAR va VARCHAR turlari uchun uzunlik maydonning haqiqiy uzunligidan kamroq bo'lishi mumkin; BLOB va TEXT turlari uchun uzunlik ko'rsatilishi kerak.

Jadval tuzilishini o'zgartirish (indeks qo'shish)

ALTER table tableName ADD INDEX indexName(columnName)

Jadvalni yaratishda to'g'ridan-to'g'ri belgilang

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);  

Indeksni tushirish sintaksisi

DROP INDEX [indexName] ON mytable; 

noyob indeks

Bu avvalgi oddiy indeksga o'xshaydi, farq shundaki: indeks ustunining qiymati noyob bo'lishi kerak, ammo null qiymatlarga ruxsat beriladi.Kompozit indeks bo'lsa, ustun qiymatlarining kombinatsiyasi noyob bo'lishi kerak.U quyidagi yo'llar bilan yaratilishi mumkin:

indeks yaratish

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

Jadval tuzilishini o'zgartirish

ALTER table mytable ADD UNIQUE [indexName] (username(length))

Jadvalni yaratishda to'g'ridan-to'g'ri belgilang

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
UNIQUE [indexName] (username(length))  
 
);  

ALTER buyrug'i yordamida indekslarni qo'shing va o'chiring

Ma'lumotlar jadvaliga indeks qo'shishning to'rtta usuli mavjud:

  • ALTER TABLE tbl_name ASOSIY KALT QO'SHISH (ustun_ro'yxati): Ushbu bayonot asosiy kalitni qo'shadi, ya'ni indeks qiymatlari noyob bo'lishi kerak va NULL bo'lmasligi kerak.
  • ALTER TABLE tbl_name ADD UNIQUE index_name (ustun_ro'yxati): Ushbu bayonot tomonidan yaratilgan indeksning qiymati noyob bo'lishi kerak (NULLdan tashqari, NULL bir necha marta paydo bo'lishi mumkin).
  • ALTER TABLE tbl_name ADD INDEX index_name (ustun_roʻyxati): Oddiy indeks qo'shing, indeks qiymati bir necha marta paydo bo'lishi mumkin.
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (ustun_ro'yxati):Bayonot to'liq matnli indekslash uchun indeksni FULLTEXT sifatida belgilaydi.

Quyidagi misol jadvalga indeks qo'shishdir.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Indekslarni tushirish uchun ALTER buyrug'idagi DROP bandidan ham foydalanishingiz mumkin.Indeksni o'chirish uchun quyidagi misolni sinab ko'ring:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

ALTER buyrug'i yordamida asosiy kalitlarni qo'shing va o'chiring

Birlamchi kalit faqat bitta ustunda harakat qilishi mumkin.Birlamchi kalit indeksini qo'shganda, asosiy kalit sukut bo'yicha NULL emasligiga ishonch hosil qilishingiz kerak (NULL EMAS).Bunga misollar quyidagilar:

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

ALTER buyrug'i bilan asosiy kalitni ham o'chirishingiz mumkin:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Birlamchi kalitni tashlaganda faqat ASOSIY KEY ni ko'rsatish kerak, lekin indeksni tashlaganda indeks nomini bilish kerak.


indeks ma'lumotlarini ko'rsatish

Jadvaldagi tegishli indeks ma'lumotlarini ro'yxatga olish uchun SHOW INDEX buyrug'idan foydalanishingiz mumkin.Chiqish ma'lumotlarini \G qo'shish orqali formatlash mumkin.

Quyidagi misollarni sinab ko'ring:

mysql> SHOW INDEX FROM table_name; \G
........

Umid qilamanki, Chen Veyliang blogi ( https://www.chenweiliang.com/ ) siz uchun foydali bo'lgan "MySQL ma'lumotlar bazasi indeksi turi/yaratish/foydalanish birikmasi ALTER bayonotidan MySQL-da foydalanish" bilan bo'lishdi.

Ushbu maqolaning havolasini baham ko'rish uchun xush kelibsiz:https://www.chenweiliang.com/cwl-496.html

Eng so'nggi yangiliklardan xabardor bo'lish uchun Chen Veyliang blogining Telegram kanaliga xush kelibsiz!

🔔 Birinchi bo'lib kanalning yuqori katalogida qimmatli "ChatGPT Content Marketing AI vositasidan foydalanish bo'yicha qo'llanma"ni qo'lga kiriting! 🌟
📚 Ushbu qo'llanmada katta ahamiyatga ega, 🌟Bu kamdan-kam imkoniyat, uni qo'ldan boy bermang! ⏰⌛💨
Baham ko'ring va yoqsa like!
Sizning baham ko'rish va yoqtirishlaringiz bizning doimiy motivatsiyamizdir!

 

发表 评论

Sizning elektron pochta manzilingiz e'lon qilinmaydi. 必填 项 已 用 * Yorliq

tepaga aylantiring