MySQL datu-basearen indizea mota/sortu/erabili konbinazioa ALTER adierazpenen erabilera MySQL-en

MySQLindizea mota/sortu/erabili konbinazioa aldatuMySQLkomando adierazpenaren erabilera

MySQL indizeak

MySQL indizea ezartzea oso garrantzitsua da MySQLren funtzionamendu eraginkorrerako, eta indizeak MySQL-ren berreskuratze-abiadura asko hobetu dezake.

Esate baterako, indizeen diseinu eta erabilera zentzuzko duen MySQL Lamborghini bat bada, indize eta indizerik gabeko MySQL giza triziklo bat da.

Indizea zutabe bakarreko indizean eta indize konposatuan banatzen da.Zutabe bakarreko indizea, hau da, indize batek zutabe bakarra dauka, taula batek zutabe bakarreko indize anitz izan ditzake, baina hau ez da indize konposatua.Indize konposatua, hau da, indize batek hainbat zutabe ditu.

Indize bat sortzean, ziurtatu behar duzu indizea SQL kontsultari aplikatutako baldintza bat dela (orokorrean WHERE klausulako baldintza gisa).

Izan ere, indizea taula bat ere bada, taulak lehen mailako gako eta indize eremuak gordetzen ditu eta entitate-taularen erregistroetara seinalatzen du.

Aurrekoak indizeak erabiltzearen onurei buruz ari dira, baina indizeak gehiegi erabiltzeak tratu txarrak ekarriko ditu.Horregatik, indizeak bere gabeziak ere izango ditu: indizeak kontsulta-abiadura asko hobetzen badu ere, taula eguneratzeko abiadura murriztuko du, hala nola, taula gainean txertatu, EGUNERATU eta EZABATU.Taula eguneratzean, MySQL-k datuak gordetzeaz gain, indize-fitxategia ere gordetzen du.

Diskoko espazioa kontsumitzen duen indize-fitxategi bat indexatzea.


indize normala

aurkibidea sortu

Hau indizerik oinarrizkoena da, ez du mugarik.Modu hauetan sor daiteke:

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

CHAR eta VARCHAR motetarako, luzera eremuaren benetako luzera baino txikiagoa izan daiteke; BLOB eta TEXT motetarako, luzera zehaztu behar da.

Aldatu taularen egitura (gehitu indizea)

ALTER table tableName ADD INDEX indexName(columnName)

Zehaztu zuzenean taula sortzean

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

Indize bat kentzeko sintaxia

DROP INDEX [indexName] ON mytable; 

indize bakarra

Aurreko indize arruntaren antzekoa da, aldea hauxe da: indize-zutabearen balioa bakarra izan behar da, baina balio nuluak onartzen dira.Indize konposatu baten kasuan, zutabeen balioen konbinazioak bakarra izan behar du.Modu hauetan sor daiteke:

aurkibidea sortu

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

Taularen egitura aldatu

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

Zehaztu zuzenean taula sortzean

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

Gehitu eta kendu indizeak ALTER komandoa erabiliz

Datu-taula bati indize bat gehitzeko lau modu daude:

  • ALTER TABLE tbl_name ADD PRIMARY KEY (zutabe_zerrenda): Adierazpen honek lehen gako bat gehitzen du, hau da, indizearen balioak bakarrak izan behar dira eta ezin dira NULL izan.
  • ALTER TABLE tbl_name ADD UNIQUE indize_izena (zutabe_zerrenda): Adierazpen honek sortutako indizearen balioak bakarra izan behar du (NULL izan ezik, NULL hainbat aldiz ager daiteke).
  • ALTER TABLE tbl_ize ADD INDEX indize_izena (zutabe_zerrenda): Gehitu indize normal bat, indizearen balioa hainbat aldiz ager daiteke.
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (zutabe_zerrenda):Adierazpenak FULLTEXT gisa zehazten du indizea testu osoko indexatzeko.

Hurrengo adibidea taula bati indize bat gehitzea da.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

ALTER komandoan DROP klausula ere erabil dezakezu indizeak kentzeko.Saiatu hurrengo instantzia hau indizea kentzeko:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

Gehitu eta kendu gako nagusiak ALTER komandoa erabiliz

Lehen gakoak zutabe batean bakarrik eragin dezake. Lehen gakoaren indizea gehitzean, lehen gakoa ez dela NULL (EZ NULL) ziurtatu behar duzu.Adibideak honako hauek dira:

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

Lehen gako bat ere ezaba dezakezu ALTER komandoarekin:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Gako nagusia jartzerakoan bakarrik zehaztu behar duzu LEHEN GAKOA, baina indize bat jartzerakoan, indizearen izena ezagutu behar duzu.


indizearen informazioa erakutsi

SHOW INDEX komandoa erabil dezakezu indizearen informazio garrantzitsua taulan zerrendatzeko.Irteerako informazioa \G gehituz formateatu daiteke.

Saiatu adibide hauek:

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

Hope Chen Weiliang bloga ( https://www.chenweiliang.com/ ) partekatu du "MySQL datu-basearen indize mota/sortu/erabili konbinazioa ALTER adierazpenaren erabilera MySQL-n", eta hori lagungarria zaizu.

Ongi etorri artikulu honen esteka partekatzera:https://www.chenweiliang.com/cwl-496.html

Ongi etorri Chen Weiliang-en blogeko Telegram kanalera azken eguneraketak jasotzeko!

🔔 Izan zaitez kanalaren goiko direktorioan "ChatGPT Content Marketing AI Tool Erabilera Gida" baliotsua lortzen lehena! 🌟
📚 Gida honek balio handia du, 🌟Aukera arraroa da hau, ez galdu! ⏰⌛💨
Partekatu eta gustatzen bazaizu!
Zure partekatzea eta gustukoak dira gure etengabeko motibazioa!

 

发表 评论

Zure helbide elektronikoa ez da argitaratuko. 必填 项 已 用 * 标注

joan goian