Tip ta' indiċi tad-database MySQL/oħloq/uża kombinazzjoni ALTER użu tad-dikjarazzjoni fil-MySQL

MySQLtip indiċi/oħloq/uża combo alter inMySQLużu tad-dikjarazzjoni tal-kmand

Indiċi MySQL

L-istabbiliment tal-indiċi MySQL huwa importanti ħafna għat-tħaddim effiċjenti tal-MySQL, u l-indiċi jista 'jtejjeb ħafna l-veloċità tal-irkupru tal-MySQL.

Pereżempju, jekk MySQL iddisinjat u indiċjat sew huwa Lamborghini, allura MySQL mingħajr disinn indiċjat huwa triċiklu uman.

L-indiċi huwa maqsum f'indiċi ta 'kolonna waħda u indiċi kompost.Indiċi ta 'kolonna waħda, jiġifieri, indiċi fih kolonna waħda biss, tabella jista' jkollha indiċi ta 'kolonna waħda multipli, iżda dan mhuwiex indiċi kompost.Indiċi kompost, jiġifieri, indiċi fih kolonni multipli.

Meta toħloq indiċi, trid tiżgura li l-indiċi huwa kundizzjoni li tapplika għall-mistoqsija SQL (ġeneralment bħala kundizzjoni tal-klawżola WHERE).

Fil-fatt, l-indiċi huwa wkoll tabella, it-tabella tiffranka ċ-ċavetta primarja u l-oqsma tal-indiċi, u tipponta lejn ir-rekords tat-tabella tal-entità.

Dawn ta 'hawn fuq qed jitkellmu dwar il-benefiċċji tal-użu tal-indiċi, iżda l-użu eċċessiv tal-indiċi se jwassal għal abbuż.Għalhekk, l-indiċi se jkollu wkoll in-nuqqasijiet tiegħu: għalkemm l-indiċi jtejjeb ħafna l-veloċità tal-mistoqsija, se jnaqqas il-veloċità tal-aġġornament tat-tabella, bħal Daħħal, Aġġorna u Ħassar tat-tabella.Minħabba li meta taġġorna t-tabella, MySQL mhux biss jiffranka d-dejta, iżda wkoll jiffranka l-fajl tal-indiċi.

Indiċjar ta' fajl indiċi li jikkonsma spazju fuq id-diska.


indiċi normali

toħloq indiċi

Dan huwa l-aktar indiċi bażiku, m'għandux restrizzjonijiet.Jista 'jinħoloq bil-modi li ġejjin:

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

Għat-tipi CHAR u VARCHAR, it-tul jista' jkun inqas mit-tul attwali tal-field; għat-tipi BLOB u TEXT, it-tul irid jiġi speċifikat.

Immodifika l-istruttura tat-tabella (żid l-indiċi)

ALTER table tableName ADD INDEX indexName(columnName)

Speċifika direttament meta toħloq it-tabella

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

Sintassi biex tinżel indiċi

DROP INDEX [indexName] ON mytable; 

indiċi uniku

Huwa simili għall-indiċi ordinarju preċedenti, id-differenza hija: il-valur tal-kolonna tal-indiċi għandu jkun uniku, iżda valuri nulli huma permessi.Fil-każ ta 'indiċi kompost, il-kombinazzjoni tal-valuri tal-kolonna għandha tkun unika.Jista 'jinħoloq bil-modi li ġejjin:

toħloq indiċi

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

Immodifika l-istruttura tal-mejda

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

Speċifika direttament meta toħloq it-tabella

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

Żid u neħħi l-indiċi billi tuża l-kmand ALTER

Hemm erba' modi kif iżżid indiċi ma' tabella tad-dejta:

  • ALTER TABLE tbl_name ADD PRIMARY KEY (lista_kolonna): Din id-dikjarazzjoni żżid ċavetta primarja, li jfisser li l-valuri tal-indiċi jridu jkunu uniċi u ma jistgħux ikunu NULL.
  • ALTER TABLE isem_tbl ADD UNIQUE isem_indiċi (lista_kolonna): Il-valur tal-indiċi maħluq minn din id-dikjarazzjoni għandu jkun uniku (ħlief NULL, NULL jista 'jidher diversi drabi).
  • ALTER TABLE isem_tbl ADD INDEX isem_indiċi (lista_kolonna): Żid indiċi normali, il-valur tal-indiċi jista 'jidher diversi drabi.
  • ALTER TABLE isem_tbl ADD FULLTEXT isem_indiċi (lista_kolonna):Id-dikjarazzjoni tispeċifika l-indiċi bħala FULLTEXT għall-indiċjar tat-test sħiħ.

L-eżempju li ġej huwa li żżid indiċi ma 'tabella.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Tista 'wkoll tuża l-klawżola DROP fuq il-kmand ALTER biex twaqqa' l-indiċi.Ipprova l-istanza li ġejja biex twaqqa' l-indiċi:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

Żid u neħħi ċ-ċwievet primarji billi tuża l-kmand ALTER

Iċ-ċavetta primarja tista' taġixxi biss fuq kolonna waħda Meta żżid indiċi taċ-ċavetta primarja, trid tiżgura li ċ-ċavetta primarja mhix NULL b'mod awtomatiku (MHUX NULL).Eżempji huma kif ġej:

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

Tista' wkoll tħassar ċavetta primarja bil-kmand ALTER:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Għandek bżonn biss li tispeċifika ċ-Ċavetta PRIMarja meta twaqqa ċ-ċavetta primarja, iżda meta twaqqa indiċi, trid tkun taf l-isem tal-indiċi.


uri informazzjoni indiċi

Tista' tuża l-kmand SHOW INDEX biex telenka l-informazzjoni rilevanti tal-indiċi fit-tabella.L-informazzjoni tal-output tista 'tiġi fformattjata billi żżid \G.

Ipprova l-eżempji li ġejjin:

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

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) qasmet "MySQL Database Indiċi Tip/Oħloq/Uża Kombinazzjoni ALTER Statement Usage f'MySQL", li hija ta' għajnuna għalik.

Merħba biex taqsam il-link ta' dan l-artikolu:https://www.chenweiliang.com/cwl-496.html

Merħba fil-kanal Telegram tal-blog ta' Chen Weiliang biex tikseb l-aħħar aġġornamenti!

🔔 Kun l-ewwel li ġġib il-"Gwida għall-Użu tal-Għodda AI għall-Marketing tal-Kontenut ChatGPT" siewja fid-direttorju ta' fuq tal-kanal! 🌟
📚 Din il-gwida fiha valur kbir, 🌟Din hija opportunità rari, titlifhiex! ⏰⌛💨
Share u like jekk togħġobkom!
Il-qsim u l-likes tiegħek huma l-motivazzjoni kontinwa tagħna!

 

发表 评论

L-indirizz elettroniku tiegħek mhux se jkun ippubblikat. Jintużaw l-oqsma meħtieġa * Tikketta

iscroll għal fuq