Tîpa nîşaneya databasa MySQL / biafirîne / bikêrhatî Bikaranîna daxuyaniya ALTER di MySQL de

MySQLcureyê îndeksê/çêkirin/bikaranîna hevberdanê di nav de biguherîneMySQLbikaranîna daxuyaniya fermanê

Indeksên MySQL

Damezrandina pêveka MySQL ji bo xebata bikêrhatî ya MySQL pir girîng e, û index dikare leza vegerandina MySQL pir çêtir bike.

Mînakî, heke MySQL bi sêwirana maqûl û karanîna îndeksan Lamborghini be, wê hingê MySQL bê index û îndeks sêçerek mirovî ye.

Indeks di nav indexek yek-stûn û pêvek pêkve tê dabeş kirin.Indeksa yek-stûnî, ango îndeksek tenê stûnek yek-stûnek dihewîne, tabloyek dikare çend pêdekên yek-stûnî hebin, lê ev ne indexek pêkhatî ye.Indeksa pêkhatî, ango indexek gelek stûnan dihewîne.

Dema ku navnîşek çêbikin, hûn hewce ne ku pê ewle bine ku index şertek e ku li ser pirsa SQL-ê tê sepandin (bi gelemperî wekî şertek xala WHERE).

Bi rastî, îndeks di heman demê de tabloyek e, tablo mifteya bingehîn û qadên pêvekê tomar dike, û tomarên tabloya sazûman nîşan dide.

Yên li jor behsa feydeyên karanîna îndeksan dikin, lê karanîna zêde ya îndeksan dê bibe sedema destdirêjiyê.Ji ber vê yekê, îndeks dê kêmasiyên xwe jî hebin: her çend îndeks leza pirsê pir çêtir dike, ew ê leza nûvekirina tabloyê kêm bike, wek mînak INSERT, UPDATE û DELETE li ser sifrê.Ji ber ku dema ku tabloyê nûve dike, MySQL ne tenê daneyan hildibijêre, lê pelê indexê jî hildibijêre.

Indekskirina pelek navnîşek ku cîhê dîskê dixwe.


index normal

index ava bike

Ev indexa herî bingehîn e, ti sînorkirinên wê tune.Ew dikare bi awayên jêrîn were afirandin:

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

Ji bo cureyên CHAR û VARCHAR, dirêjî dikare ji dirêjahiya rastîn a zeviyê kêmtir be; ji bo celebên BLOB û TEXT, dirêjahî divê were diyar kirin.

Struktura tabloyê biguherîne (îndeksê zêde bike)

ALTER table tableName ADD INDEX indexName(columnName)

Dema afirandina tabloyê rasterast diyar bikin

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

Hevoksazî ji bo daxistina index

DROP INDEX [indexName] ON mytable; 

index yekta

Ew mîna nîşana asayî ya berê ye, cûdahî ev e: nirxa stûna pêvekê divê yekta be, lê nirxên null destûr têne dayîn.Di rewşek pêvekek pêkhatî de, divê berhevoka nirxên stûnê yekta be.Ew dikare bi awayên jêrîn were afirandin:

index ava bike

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

Struktura sifrê biguherîne

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

Dema afirandina tabloyê rasterast diyar bikin

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

Bi karanîna fermana ALTER indexan zêde bikin û jê bikin

Çar awayan hene ku meriv pêdekek li tabloyek daneyê zêde bike:

  • TABLEya guhêrbar tbl_nav KEYYA SEREKÎ ZÊDE KIR (lîsteya_stûnê): Vê gotinê mifteyek bingehîn lê zêde dike, ku tê vê wateyê ku divê nirxên îndeksê yekta bin û nekarin NULL bin.
  • ALTER TABLE tbl_name BİXWÎNE BİXWÎNE BİXWÎNE BİXWÎNE (lîsteya_stûnê): Pêdivî ye ku nirxa navnîşa ku ji hêla vê gotinê ve hatî afirandin yekta be (ji bilî NULL, NULL dikare gelek caran xuya bibe).
  • ALTER TABLE tbl_name ZÊDEKIRIN INDEX index_name (lîsteya_stûnê): Endeksek normal lê zêde bikin, nirxa pêvekê dikare gelek caran xuya bibe.
  • ALTER TABLE tbl_name LÊZÊKIRIN TEMAMÎ index_name (lîsteya_stûnê):Daxuyanî ji bo îndekskirina tev-nivîsê indexê wekî FULLTEXT destnîşan dike.

Nimûneya jêrîn ew e ku meriv pêdekek li tabloyek zêde bike.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Her weha hûn dikarin benda DROP-ê li ser fermana ALTER bikar bînin da ku navnîşan bavêjin.Mînaka jêrîn biceribînin da ku navnîşê bavêjin:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

Bi karanîna fermana ALTER bişkojkên bingehîn zêde bikin û jê bikin

Mifteya seretayî tenê dikare li ser stûnekê bixebite. Dema ku nîşanek mifteya seretayî lê zêde bike, divê hûn pê ewle bin ku mifteya seretayî ji hêla xwerû ne NULL be (NE NULL).Nimûne ev in:

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

Her weha hûn dikarin bi fermana ALTER mifteyek bingehîn jêbirin:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Dema ku mifteya seretayî davêje tenê pêdivî ye ku hûn KEYYA SEREKÎ diyar bikin, lê dema ku navnîşek davêjin, divê hûn navê navnîşê zanibin.


agahî index nîşan bide

Hûn dikarin fermana SHOW INDEX bikar bînin da ku agahdariya pêvek têkildar di tabloyê de navnîş bikin.Agahdariya derketinê dikare bi lêzêdekirina \G were format kirin.

Mînakên jêrîn biceribînin:

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

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) "Tîpa Indeksa Database ya MySQL / Bikaranîna Daxuyaniya ALTER a Hevbeş di MySQL de Biafirîne / Bikar bîne" parve kir, ku ji we re arîkar e.

Bi xêr hatî bo parvekirina girêdana vê gotarê:https://www.chenweiliang.com/cwl-496.html

Hûn bi xêr hatin kanala Telegramê ya bloga Chen Weiliang da ku nûvekirinên herî dawî bistînin!

🔔 Bibin yê yekem ku di pelrêça jorîn a kanalê de "Rêbernameya Bikaranîna Amûra AI-ya Kirrûbirra Naveroka ChatGPT" ya bi qîmet bistîne! 🌟
📚 Ev rêber nirxek pir mezin dihewîne, 🌟Ev derfetek kêm e, wê ji dest nede! ⏰⌛💨
Heke hûn hez dikin parve bikin û hez bikin!
Parvekirin û ecibandinên we motîvasyona meya domdar e!

 

评论

Navnîşana e-nameya we nayê weşandin. Zeviyên pêdivî têne bikar anîn * Awanasî

li jor bigerin