Ny karazana index database MySQL / mamorona / mampiasa fitambarana ALTER fampiasana fanambarana amin'ny MySQL

MySQLkarazana index / mamorona / mampiasa combo alter inMySQLfampiasana fanambarana baiko

MySQL indexes

Ny fametrahana ny index MySQL dia tena zava-dehibe amin'ny fampandehanana ny MySQL.

Ohatra, raha MySQL izay natao araka ny tokony ho izy sy mampiasa indexes dia Lamborghini, MySQL izay tsy natao sy mampiasa indexes dia tricycle olombelona.

Ny fanondroana dia mizara ho tondro tsanganana tokana sy tondro mitambatra. Ny fanondroana tsanganana tokana dia midika fa tsy misy afa-tsy tsanganana tokana ny fanondroana iray. Ny tabilao dia afaka manana fanondroana tsanganana tokana maromaro, fa tsy fanondroana mitambatra izany. Fanondroana mitambatra, izany hoe, misy tsanganana maromaro ny fanondroana iray.

Rehefa mamorona fanondroana ianao dia mila miantoka fa ny index dia ampiharina amin'ny fepetran'ny fanambarana fangatahana SQL (matetika amin'ny fepetran'ny clause WHERE).

Raha ny marina, ny index dia latabatra iray izay mitahiry ny fanalahidy fototra sy ny saha fanondro ary manondro ny firaketana ny latabatra enti-manana.

Ireo voalaza etsy ambony ireo dia miresaka momba ny tombotsoan'ny fampiasana index, fa ny fampiasana tafahoatra ny index dia miteraka fanararaotana.Noho izany, ny index dia hanana ny lesokany ihany koa: na dia manatsara ny hafainganam-pandehan'ny fangatahana aza ny index, dia hampihena ny hafainganam-pandehan'ny fanavaozana ny latabatra, toy ny INSERT, UPDATE ary DELETE eo amin'ny latabatra.Satria rehefa manavao ny latabatra, MySQL dia tsy mamonjy ny angon-drakitra fotsiny, fa mamonjy ny rakitra index.

Fanondroana rakitra fanondro izay mandany habaka kapila.


fanondroana ara-dalàna

mamorona index

Io no fanondroana fototra indrindra, tsy misy fetrany. Azo atao amin'ny fomba manaraka izany:

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

Raha CHAR, karazana VARCHAR, ny halavany dia mety ho latsaky ny halavan'ny saha; raha toa ka karazana BLOB sy TEXT izany, dia tsy maintsy ambara ny halavany.

Ovao ny firafitry ny latabatra (manampia fanondro)

ALTER table tableName ADD INDEX indexName(columnName)

Lazao mivantana rehefa mamorona latabatra

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

Syntax hanisy index

DROP INDEX [indexName] ON mytable; 

tondro tokana

Mitovy amin'ny fanondro mahazatra teo aloha, afa-tsy ny sandan'ny tsanganana fanondro dia tsy maintsy miavaka, fa ny sanda tsy misy dikany dia avela. Raha ny mari-pamantarana mitambatra, ny fitambaran'ny sandan'ny tsanganana dia tsy maintsy miavaka. Azo atao amin'ny fomba manaraka izany:

mamorona index

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

Manova rafitra latabatra

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

Lazao mivantana rehefa mamorona latabatra

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

Ampio sy esory ny fanondroana mampiasa ny baiko ALTER

Misy fomba efatra hanampiana index amin'ny latabatra data:

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): Ity fanambarana ity dia manampy fanalahidy fototra, izay midika fa ny sandan'ny index dia tsy maintsy miavaka ary tsy mety ho NULL.
  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): Ny sanda ao amin'ny index noforonin'ity fanambarana ity dia tsy maintsy miavaka (afa-tsy NULL, izay mety hiseho imbetsaka).
  • ALTER TABLE tbl_name ADD INDEX index_name (column_list): Manampia fanondro mahazatra, mety hiseho imbetsaka ny sandan'ny fanondro.
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):Ity fanambarana ity dia mamaritra ny fanondroana ho FULLTEXT, izay ampiasaina amin'ny fanondroana lahatsoratra feno.

Ity ohatra manaraka ity dia ny manampy index amin'ny latabatra.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Azonao atao ihany koa ny mampiasa ny DROP clause ao amin'ny baiko ALTER mba hampidina index. Andramo ity ohatra manaraka ity mba hamafa index:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

Ampio sy esory ny fanalahidy fototra amin'ny alàlan'ny baiko ALTER

Ny fanalahidy fototra dia tsy afaka miasa afa-tsy amin'ny tsanganana iray. Rehefa manampy fanondroana fanalahidy fototra dia mila miantoka ianao fa tsy NULL ny fanalahidy fototra. Ireto misy ohatra:

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

Azonao atao koa ny mamafa ny lakile voalohany amin'ny baiko ALTER:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Rehefa mamafa ny lakile fototra dia ny KEY PRIMARY ihany no ilainao, fa rehefa mamafa index dia tsy maintsy fantatrao ny anaran'ny index.


asehoy ny mombamomba ny fanondroana

Azonao atao ny mampiasa ny baiko SHOW INDEX mba hitanisana fampahalalana momba ny fanondro mifandraika amin'ny tabilao. Ny fampahalalana momba ny vokatra dia azo alaina amin'ny fanampiana \G.

Andramo ireto ohatra manaraka ireto:

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

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) nizara "karazana indeksan'ny database MySQL/famoronana/mampiasa fitambaran'ny fampiasana fanambarana ALTER amin'ny MySQL", izay hanampy anao.

Tongasoa eto mizara ny rohy amin'ity lahatsoratra ity:https://www.chenweiliang.com/cwl-496.html

Tongasoa eto amin'ny fantsona Telegram an'ny bilaogin'i Chen Weiliang hahazoana vaovao farany!

🔔 Aoka ho voalohany hahazo ny "ChatGPT Content Marketing AI Tool Usage Guide" sarobidy ao amin'ny lahatahiry ambony fantsona! 🌟
📚 Ity torolalana ity dia misy sanda lehibe, 🌟Ity dia fotoana tsy fahita firy, aza adino! ⏰⌛💨
Partageo ary j'aime raha tianao!
Ny fizaranao sy ny j'aime no antony manosika anay hatrany!

 

Comments

Ny adiresy mailakao dia tsy havoaka. Ampiasaina ny saha ilaina * Label

horonana mankany ambony