Artikelgids
MySQLIndeks tipe/skep/gebruik kombinasie verander inMySQLGebruik van bevelstellings in
MySQL-indeks
Die vestiging van MySQL-indeks is baie belangrik vir die doeltreffende werking van MySQL.Die indeks kan die herwinningspoed van MySQL aansienlik verbeter.
Byvoorbeeld, as MySQL wat behoorlik ontwerp is en indekse gebruik 'n Lamborghini is, dan is MySQL wat nie ontwerp is nie en indekse gebruik 'n menslike driewiel.
Indekse word verdeel in enkelkolomindekse en gekombineerde indekse. 'n Enkelkolomindeks beteken dat 'n indeks slegs 'n enkele kolom bevat. 'n Tabel kan veelvuldige enkelkolomindekse hê, maar dit is nie 'n gekombineerde indeks nie. Gekombineerde indeks, dit wil sê, 'n indeks bevat veelvuldige kolomme.
Wanneer jy 'n indeks skep, moet jy verseker dat die indeks toegepas word op die voorwaardes van die SQL-navraagstelling (gewoonlik as 'n voorwaarde van die WHERE-klousule).
Trouens, die indeks is ook 'n tabel wat die primêre sleutel- en indeksvelde stoor en na die rekords van die entiteitstabel wys.
Die bogenoemde alles praat oor die voordele van die gebruik van indekse, maar oormatige gebruik van indekse sal misbruik veroorsaak. Daarom sal die indeks ook sy tekortkominge hê: alhoewel die indeks die navraagspoed aansienlik verbeter, sal dit ook die spoed van die opdatering van die tabel verminder, soos INSERT, UPDATE en DELETE op die tabel. Want wanneer die tabel opgedateer word, moet MySQL nie net die data stoor nie, maar ook die indekslêer stoor.
Indeksering van indekslêers neem skyfspasie op.
Gewone indeks
Skep indeks
Dit is die mees basiese indeks, dit het geen beperkings nie. Dit kan op die volgende maniere geskep word:
CREATE INDEX indexName ON mytable(username(length));
As dit CHAR, VARCHAR tipe is, kan lengte minder wees as die werklike lengte van die veld; as dit BLOB en TEXT tipe is, moet lengte gespesifiseer word.
Verander tabelstruktuur (voeg indeks by)
ALTER table tableName ADD INDEX indexName(columnName)
Spesifiseer dit direk wanneer die tabel geskep word
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );
Sintaksis vir die verwydering van 'n indeks
DROP INDEX [indexName] ON mytable;
unieke indeks
Dit is soortgelyk aan die vorige gewone indeks, behalwe dat die waarde van die indekskolom uniek moet wees, maar nulwaardes word toegelaat. In die geval van 'n saamgestelde indeks, moet die kombinasie van kolomwaardes uniek wees. Dit kan op die volgende maniere geskep word:
Skep indeks
CREATE UNIQUE INDEX indexName ON mytable(username(length))
Verander tabelstruktuur
ALTER table mytable ADD UNIQUE [indexName] (username(length))
Spesifiseer dit direk wanneer die tabel geskep word
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) );
Voeg indekse by en vee uit deur die ALTER-opdrag te gebruik
Daar is vier maniere om 'n indeks by 'n datatabel te voeg:
- VERANDER TABEL tbl_name VOEG PRIMÊRE SLEUTEL VOEG (kolomlys): Hierdie stelling voeg 'n primêre sleutel by, wat beteken dat die indekswaarde uniek moet wees en nie NULL kan wees nie.
- VERANDER TABEL tbl_name VOEG UNIEKE indeksnaam (kolom_lys) by: Die waarde van die indeks wat deur hierdie stelling geskep word, moet uniek wees (behalwe NULL, wat verskeie kere kan verskyn).
- VERANDER TABEL tbl_name VOEG INDEKS indeksnaam by (kolomlys): Voeg 'n normale indeks by, en die indekswaarde kan verskeie kere verskyn.
- VERANDER TABEL tbl_name VOEG VOLTEKS indeksnaam VOEG (kolomlys):Hierdie stelling spesifiseer die indeks as VOLTEKS, wat vir volteksindeksering gebruik word.
Die volgende voorbeeld voeg 'n indeks by die tabel.
mysql> ALTER TABLE testalter_tbl ADD INDEX (c);
Jy kan ook die DROP-klousule in die ALTER-opdrag gebruik om 'n indeks te laat val. Probeer die volgende voorbeeld om 'n indeks uit te vee:
mysql> ALTER TABLE testalter_tbl DROP INDEX c;
Voeg primêre sleutels by en vee dit uit deur die ALTER-opdrag te gebruik
Die primêre sleutel kan slegs op een kolom optree. Wanneer 'n primêre sleutel-indeks bygevoeg word, moet jy verseker dat die primêre sleutel nie by verstek NULL is nie. Voorbeelde is soos volg:
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL; mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
U kan ook 'n primêre sleutel uitvee deur die ALTER-opdrag te gebruik:
mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;
Wanneer jy 'n primêre sleutel uitvee, hoef jy net die PRIMÊRE SLEUTEL te spesifiseer, maar wanneer jy 'n indeks uitvee, moet jy die indeksnaam ken.
Wys indeksinligting
Jy kan die SHOW INDEX-opdrag gebruik om verwante indeksinligting in 'n tabel te lys. Uitsetinligting kan geformateer word deur \G by te voeg.
Probeer die volgende voorbeelde:
mysql> SHOW INDEX FROM table_name; \G ........
Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) gedeel "MySQL databasis indeks tipe/skepping/gebruik kombinasie ALTER stelling gebruik in MySQL", wat nuttig is vir jou.
Welkom om die skakel van hierdie artikel te deel:https://www.chenweiliang.com/cwl-496.html
Welkom by die Telegram-kanaal van Chen Weiliang se blog om die nuutste opdaterings te kry!
📚 Hierdie gids bevat groot waarde, 🌟Dit is 'n seldsame geleentheid, moet dit nie misloop nie! ⏰⌛💨
Share en like as jy wil!
Jou deel en laaiks is ons voortdurende motivering!