MySQL nooca tusaha tusmada/abuur/isticmaalka isku-darka isticmaalka bayaannada ee MySQL

MySQLnooca index/abuur/isticmaalka combo beddelkaMySQListicmaalka bayaan amar

Tusmooyinka MySQL

Aasaaska MySQL index aad bay muhiim ugu tahay hawl-galka hufan ee MySQL, tusmadu waxay si weyn u wanaajin kartaa xawaaraha soo-celinta MySQL.

Tusaale ahaan, haddii MySQL si habboon loo qaabeeyey oo loo tusmeeyey MySQL uu yahay Lamborghini, markaa MySQL oo aan lahayn nakhshad la tusmeeyey waa saddex baaskiil oo bini'aadam ah.

Tusmadu waxa ay u qaybsantaa tusaha hal tiir iyo index ka kooban.Tusmada hal-saldhigga, yacni, tusmuhu waxa uu ka kooban yahay hal tiir oo keliya, miisku waxa uu yeelan karaa tusmooyin hal-column oo badan, laakiin tani maaha tusmooyin isku dhafan.Tusmada isku dhafan, taas oo ah, hal index ka kooban tiirar badan.

Markaad abuurayso tusmaynta, waxaad u baahan tahay inaad hubiso in tusmuhu yahay xaalad khusaysa weydiinta SQL (sida caadiga ah shardiga WHERE).

Dhab ahaantii, tusmuhu sidoo kale waa miis, miisku wuxuu badbaadiyaa furaha aasaasiga ah iyo meelaha tusmooyinka, wuxuuna tilmaamayaa diiwaannada miiska cidda.

Kuwa kore waxay dhamaantood ku saabsan yihiin faa'iidooyinka isticmaalka tusmooyinka, laakiin isticmaalka xad-dhaafka ah ee tusmooyinka waxay horseedi doontaa xadgudub.Sidaa darteed, tilmaantu waxay sidoo kale yeelan doontaa cilladaheeda: inkasta oo tusmadu si weyn u wanaajiso xawaaraha weydiinta, waxay yareyn doontaa xawaaraha cusboonaysiinta miiska, sida INSERT, CUSBOONAYSIIN iyo TILMAANTA miiska.Sababtoo ah marka la cusboonaysiinayo miiska, MySQL kaliya ma kaydinayso xogta, laakiin sidoo kale waxay kaydisaa faylka index.

Tilmaanta faylka tusaha ee isticmaala booska diskka.


tusmada caadiga ah

Samee tusmo

Tani waa tusaha ugu aasaasiga ah, ma laha wax xaddidaad ah.Waxaa loo abuuri karaa siyaabaha soo socda:

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

Noocyada CHAR iyo VARCHAR, dhererku wuxuu ka yaraan karaa dhererka dhabta ah ee goobta; noocyada BLOB iyo TEXT, dhererka waa in la cayimaa.

Wax ka beddel qaab dhismeedka miiska (ku dar tusmada)

ALTER table tableName ADD INDEX indexName(columnName)

Si toos ah u qeex markaad samaynayso miiska

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

Syntax si aad u tuurto tusaha

DROP INDEX [indexName] ON mytable; 

index gaar ah

Waxay la mid tahay tusaha caadiga ah ee hore, faraqa u dhexeeya waa: qiimaha tiirka index waa inuu ahaado mid gaar ah, laakiin qiimaha null waa la oggol yahay.Marka laga hadlayo tusmaynta isku-dhafka ah, isku-darka qiyamka tiirarka waa inuu noqdaa mid gaar ah.Waxaa loo abuuri karaa siyaabaha soo socda:

Samee tusmo

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

Wax ka beddel qaab dhismeedka miiska

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

Si toos ah u qeex markaad samaynayso miiska

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

Ku dar oo ka saar tusmooyinka adoo isticmaalaya amarka ALTER

Waxaa jira afar siyaabood oo loogu dari karo tusaha shaxda xogta:

  • BEDEL TABLE tbl_name KU dar furaha aasaasiga ah (liiska_column): Bayaankani waxa uu ku darayaa furaha aasaasiga ah, taas oo macnaheedu yahay in qiyamka tusmuhu uu yahay mid gaar ah oo aanu noqon karin NULL.
  • BEDEL TABLE tbl_name ADD UNIQUE index_name (liiska_column): Qiimaha tusmada uu sameeyay bayaankan waa in uu ahaado mid gaar ah (marka laga reebo NULL, NULL waxa laga yaabaa inay soo baxdo dhowr jeer).
  • BEDEL TABLE tbl_name KU dar INDEX index_name (liiska_tixda): Ku dar tusmada caadiga ah, qiimaha tusmuhu waxa uu soo bixi karaa dhawr jeer.
  • BEDEL TABLE tbl_name ku dar FULLTEXT index_name (liiska_column):Bayaanka ayaa tilmaamaya FULLTEXT ee tusmaynta qoraalka buuxa.

Tusaalaha soo socdaa waa in lagu daro tusmada miiska.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Waxa kale oo aad isticmaali kartaa qodobka DROP ee amarka ALTER si aad u tuurto tusmooyinka.Isku day tusaalaha soo socda si aad u tuurto tusaha:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

Ku dar oo ka saar furayaasha aasaasiga ah adoo isticmaalaya amarka ALTER

Furaha aasaasiga ahi waxa uu ku dhaqmi karaa hal tiir oo keliya.Markaad ku darayso tusaha furaha aasaasiga ah, waxa aad u baahan tahay in aad hubiso in furaha aasaasiga ahi aanu BURIN si caadi ah (NOT NULL).Tusaalooyinka waa sida soo socota:

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

Waxa kale oo aad ku tirtiri kartaa furaha aasaasiga ah amarka ALTER:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Waxa kaliya oo aad u baahan tahay inaad sheegto furaha Asaasiga ah marka aad tuurayso furaha aasaasiga ah, laakiin marka aad tuurayso tusaha, waa in aad taqaanaa magaca tusaha.


tusi macluumaadka tusmada

Waxaad isticmaali kartaa amarka SHOW INDEX si aad ugu taxdo macluumaadka la xidhiidha tusaha ee shaxda.Macluumaadka soo-saarka waxaa lagu qaabayn karaa iyadoo lagu darayo \G.

Isku day tusaalooyinka soo socda:

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

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) la wadaagay "MySQL Database Index Nooca/Abuur/Isticmaal Isku-dhafka Beddelka Isticmaalka Bayaanka ee MySQL", kaas oo adiga ku caawinaya.

Ku soo dhawoow inaad wadaagto xiriirka maqaalkan:https://www.chenweiliang.com/cwl-496.html

Ku soo dhawoow kanaalka Telegramka ee Chen Weiliang's blog si aad u hesho wararkii ugu dambeeyay!

🔔 Noqo kuwa ugu horreeya ee hela "ChatGPT Content Suuqgeynta AI Hagaha Isticmaalka Qalabka" ee tusaha sare ee kanaalka! 🌟
📚 Hagahan waxa uu ka kooban yahay qiimo aad u weyn, 🌟Tani waa fursad naadir ah, ha seegin! ⏰⌛💨
Share iyo like saar hadaad jeceshahay!
Wadaagistaada iyo jeceylkaaga ayaa ah dhiirigelintayada joogtada ah!

 

评论

Cinwaanka emailkaaga lama daabici doono. 项 已 用 * Calaamadda

kor ugu rog