MySQL өгөгдлийн сангийн индексийг MySQL дэх ALTER мэдэгдлийн ашиглалтын төрөл/үүсгэх/хэрэглэх хослол

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 ADD UNIQUE index_name (баганын_жагсаалт): Энэ мэдэгдлээр үүсгэсэн индексийн утга нь өвөрмөц байх ёстой (NULL-ээс бусад тохиолдолд NULL олон удаа гарч ирж болно).
  • ALTER TABLE tbl_name ADD INDEX индексийн нэр (баганын_жагсаалт): Ердийн индекс нэмбэл индексийн утга олон удаа гарч ирж болно.
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (баганын_жагсаалт):Уг мэдэгдэлд индексийг бүтэн текстийн индексжүүлэхэд FULLTEXT гэж зааж өгсөн.

Дараах жишээ нь хүснэгтэд индекс нэмэх явдал юм.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Та мөн ALTER командын DROP заалтыг ашиглан индексүүдийг буулгаж болно.Индексийг хасахын тулд дараах жишээг ашиглана уу.

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

ALTER командыг ашиглан үндсэн түлхүүрүүдийг нэмж устгана уу

Үндсэн түлхүүр нь зөвхөн нэг багана дээр ажиллах боломжтой.Анхны түлхүүрийн индекс нэмэхдээ үндсэн түлхүүр нь өгөгдмөлөөр NULL биш (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-ийг зааж өгөх хэрэгтэй, харин индексийг буулгахдаа индексийн нэрийг мэдэж байх ёстой.


индексийн мэдээллийг харуулах

Та SHOW INDEX командыг ашиглан хүснэгтэд холбогдох индексийн мэдээллийг жагсааж болно.Гаралтын мэдээллийг \G нэмэх замаар форматлаж болно.

Дараах жишээг үзээрэй.

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

Hope Chen Weiliang блог ( https://www.chenweiliang.com/ ) "MySQL өгөгдлийн сангийн индексийн төрөл/үүсгэх/хэрэглэх хослолыг MySQL-д ALTER мэдэгдлийн хэрэглээ" хуваалцсан нь танд тустай.

Энэ нийтлэлийн холбоосыг хуваалцахад тавтай морилно уу:https://www.chenweiliang.com/cwl-496.html

Чен Вэйляны блогын Telegram сувагт тавтай морил, хамгийн сүүлийн үеийн мэдээг аваарай!

🔔 Сувгийн шилдэг лавлахаас "ChatGPT Content Marketing AI Tool Usage Guide"-г хамгийн түрүүнд аваарай! 🌟
📚 Энэхүү гарын авлага нь асар их үнэ цэнийг агуулсан, 🌟Энэ бол ховор боломж, бүү алдаарай! ⏰⌛💨
Хэрэв танд таалагдвал лайк дарж, хуваалцаарай!
Таны хуваалцах, дуртай зүйл бол бидний байнгын урам зориг юм!

 

发表 评论

Таны имэйл хаяг нийтлэгдэхгүй. 必填 项 已 用 дээр ажиллаж байна * 标注

滚动 到 顶部