MySQL маалымат базасынын индексинин түрү/түзүү/колдонуу айкалышы ALTER MySQLде колдонуу

MySQLиндекс түрү/түзүү/колдонуу айкалышы өзгөртүүMySQLбуйрук билдирүүсүн колдонуу

MySQL индекстери

MySQL индексинин түзүлүшү MySQLдин эффективдүү иштеши үчүн абдан маанилүү жана индекс MySQLдин издөө ылдамдыгын бир топ жакшырта алат.

Мисалы, эгерде MySQL акылга сыярлык дизайн жана индекстерди колдонуу менен Lamborghini болсо, анда индекстери жана индекстери жок MySQL адамдын үч велосипеди болуп саналат.

Индекс бир мамычалуу индекс жана курама индекс болуп бөлүнөт.Бир мамычалуу индекс, башкача айтканда, индекс бир гана тилкени камтыйт, таблицада бир нече тилкелүү индекстер болушу мүмкүн, бирок бул курамдуу индекс эмес.Композиттик индекс, башкача айтканда, индекс бир нече мамычаларды камтыйт.

Индексти түзүп жатканда, индекс SQL суроосуна колдонулган шарт экенине ынанышыңыз керек (негизинен WHERE пунктунун шарты катары).

Чынында, индекс ошондой эле негизги ачкычты жана индекс талааларын сактаган жана объект таблицасынын жазууларын көрсөткөн таблица болуп саналат.

Жогоруда айтылгандар индекстерди колдонуунун артыкчылыктары жөнүндө сөз болуп жатат, бирок индекстерди ашыкча колдонуу кыянаттыкка алып келет.Демек, индекстин да кемчиликтери болот: индекс суроо ылдамдыгын бир топ жакшыртса да, таблицадагы INSERT, UPDATE жана DELETE сыяктуу таблицаны жаңыртуу ылдамдыгын азайтат.Анткени таблицаны жаңылоодо MySQL маалыматтарды гана сактабастан, индекс файлын да сактайт.

Дисктеги мейкиндикти талап кылган индекс файлын индекстөө.


нормалдуу көрсөткүч

индексти түзүү

Бул эң негизги индекс, ага эч кандай чектөөлөр жок.Ал төмөнкү жолдор менен түзүлүшү мүмкүн:

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

CHAR жана VARCHAR түрлөрү үчүн узундук талаанын чыныгы узундугунан аз болушу мүмкүн; BLOB жана TEXT түрлөрү үчүн узундук көрсөтүлүшү керек.

Таблица структурасын өзгөртүү (индекс кошуу)

ALTER table tableName ADD INDEX indexName(columnName)

Таблицаны түзүүдө түздөн-түз көрсөтүңүз

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

Индексти түшүрүү үчүн синтаксис

DROP INDEX [indexName] ON mytable; 

уникалдуу көрсөткүч

Бул мурунку кадимки индекске окшош, айырмасы: индекс тилкесинин мааниси уникалдуу болушу керек, бирок нөлдүк маанилерге жол берилет.Композиттик индекстин учурда мамыча маанилеринин айкалышы уникалдуу болушу керек.Ал төмөнкү жолдор менен түзүлүшү мүмкүн:

индексти түзүү

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

Таблица структурасын өзгөртүү

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

Таблицаны түзүүдө түздөн-түз көрсөтүңүз

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

ALTER буйругун колдонуу менен индекстерди кошуу жана алып салуу

Маалымат таблицасына индексти кошуунун төрт жолу бар:

  • ALTER TABLE tbl_name ADD PRIMARY KEY (тилкелер тизмеси): Бул билдирүү негизги ачкычты кошот, демек, индекстин маанилери уникалдуу болушу керек жана NULL болушу мүмкүн эмес.
  • ALTER TABLE tbl_name UNIQUE индекс_атын КОШУ (тилкелер_тизмеси): Бул билдирүү тарабынан түзүлгөн индекстин мааниси уникалдуу болушу керек (NULLден башкасы, NULL бир нече жолу пайда болушу мүмкүн).
  • ALTER TABLE tbl_name ADD INDEX index_name (тилкелер_тизмеси): Кадимки индексти кошуңуз, индекстин мааниси бир нече жолу пайда болушу мүмкүн.
  • ALTER TABLE tbl_name КОШУУ FULLTEXT index_name (тилке_тизме):Билдирүүдө индекс толук текстти индекстөө үчүн FULLTEXT катары көрсөтүлгөн.

Төмөнкү мисал таблицага индексти кошуу болуп саналат.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Ошондой эле индекстерди түшүрүү үчүн ALTER буйругундагы DROP пунктун колдоно аласыз.Индексти түшүрүү үчүн төмөнкү мисалды колдонуп көрүңүз:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

ALTER буйругун колдонуп, негизги ачкычтарды кошуу жана алып салуу

Негизги ачкыч бир гана тилкеде иштей алат.Негизги ачкыч индексин кошкондо, сиз негизги ачкыч демейки боюнча NULL эмес экенине ынанышыңыз керек (NOT NULL).Мисалдар төмөнкүдөй:

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

Ошондой эле ALTER буйругу менен негизги ачкычты жок кыла аласыз:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Негизги ачкычты таштаганда гана PRIMARY KEYти көрсөтүшүңүз керек, бирок индексти түшүргөндө индекстин атын билишиңиз керек.


индекс маалымат көрсөтүү

Тиешелүү индекс маалыматын таблицага көрсөтүү үчүн КӨРСӨТҮҮ INDEX буйругун колдонсоңуз болот.Чыгуу маалыматы \G кошуу менен форматталышы мүмкүн.

Төмөнкү мисалдарды колдонуп көрүңүз:

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

Hope Chen Weiliang блогу ( https://www.chenweiliang.com/ ) "MySQL маалыматтар базасынын индексинин түрү/түзүү/колдонуу айкалышы ALTER билдирүүсүн MySQLде колдонуу" менен бөлүштү, бул сизге пайдалуу.

Бул макаланын шилтемесин бөлүшүүгө кош келиңиз:https://www.chenweiliang.com/cwl-496.html

Акыркы жаңылыктарды алуу үчүн Чен Вейляндын блогунун Telegram каналына кош келиңиз!

🔔 Каналдын башкы каталогунан баалуу "ChatGPT Content Marketing AI куралын колдонуу боюнча колдонмону" биринчилерден болуп алыңыз! 🌟
📚 Бул колдонмо чоң баалуулуктарды камтыйт, 🌟Бул сейрек кездешүүчү мүмкүнчүлүк, аны өткөрүп жибербеңиз! ⏰⌛💨
Бөлүшүп, жакса лайк!
Сиздин бөлүшүүңүз жана лайктарыңыз биздин үзгүлтүксүз мотивациябыз!

 

发表 评论

Электрондук почта дарегиңиз жарыяланбайт. Милдеттүү талаалар колдонулат * 标注

өйдө сыдырыңыз