ປະເພດດັດສະນີຖານຂໍ້ມູນ MySQL / ສ້າງ / ໃຊ້ການປະສົມປະສານ ALTER ການໃຊ້ຄໍາສັ່ງໃນ MySQL

MySQLປະເພດດັດສະນີ/ສ້າງ/ໃຊ້ combo ປ່ຽນແປງໃນMySQLການ​ນໍາ​ໃຊ້​ຄໍາ​ສັ່ງ​ຄໍາ​ສັ່ງ​

ດັດສະນີ MySQL

ການສ້າງດັດສະນີ MySQL ມີຄວາມສໍາຄັນຫຼາຍສໍາລັບການປະຕິບັດງານທີ່ມີປະສິດທິພາບຂອງ MySQL, ແລະດັດສະນີສາມາດປັບປຸງຄວາມໄວໃນການດຶງຂໍ້ມູນຂອງ MySQL ຢ່າງຫຼວງຫຼາຍ.

ຕົວຢ່າງ, ຖ້າ MySQL ທີ່ມີການອອກແບບທີ່ສົມເຫດສົມຜົນແລະການນໍາໃຊ້ດັດສະນີແມ່ນ Lamborghini, ຫຼັງຈາກນັ້ນ MySQL ທີ່ບໍ່ມີດັດສະນີແລະດັດສະນີແມ່ນສາມລໍ້ຂອງມະນຸດ.

ດັດຊະນີແບ່ງອອກເປັນດັດຊະນີຄໍລຳດຽວ ແລະ ດັດຊະນີປະສົມ.ດັດຊະນີຖັນດຽວ, ນັ້ນແມ່ນ, ດັດຊະນີມີພຽງຖັນດຽວ, ຕາຕະລາງສາມາດມີດັດຊະນີຖັນດຽວຫຼາຍ, ແຕ່ນີ້ບໍ່ແມ່ນດັດຊະນີປະສົມ.ດັດຊະນີປະສົມ, ນັ້ນແມ່ນ, ດັດຊະນີປະກອບດ້ວຍຫຼາຍຖັນ.

ເມື່ອສ້າງດັດສະນີ, ທ່ານຈໍາເປັນຕ້ອງໃຫ້ແນ່ໃຈວ່າດັດສະນີແມ່ນເງື່ອນໄຂທີ່ໃຊ້ກັບຄໍາຖາມ SQL (ໂດຍທົ່ວໄປເປັນເງື່ອນໄຂຂອງ WHERE clause).

ໃນຄວາມເປັນຈິງ, ດັດຊະນີຍັງເປັນຕາຕະລາງ, ຕາຕະລາງບັນທຶກຂໍ້ມູນຕົ້ນຕໍແລະດັດສະນີ, ແລະຊີ້ໃຫ້ເຫັນບັນທຶກຂອງຕາຕະລາງຫນ່ວຍງານ.

ຂ້າງເທິງນີ້ແມ່ນເວົ້າກ່ຽວກັບຜົນປະໂຫຍດຂອງການນໍາໃຊ້ດັດສະນີ, ແຕ່ການນໍາໃຊ້ດັດສະນີຫຼາຍເກີນໄປຈະນໍາໄປສູ່ການລ່ວງລະເມີດ.ດັ່ງນັ້ນ, ດັດຊະນີຍັງຈະມີຂໍ້ບົກຜ່ອງຂອງມັນ: ເຖິງແມ່ນວ່າດັດຊະນີຈະປັບປຸງຄວາມໄວການສອບຖາມຢ່າງຫຼວງຫຼາຍ, ມັນຈະຫຼຸດລົງຄວາມໄວໃນການປັບປຸງຕາຕະລາງເຊັ່ນ 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))  
 
);  

Syntax ເພື່ອຫຼຸດດັດຊະນີ

DROP INDEX [indexName] ON mytable; 

ດັດຊະນີທີ່ເປັນເອກະລັກ

ມັນຄ້າຍຄືກັນກັບດັດສະນີທໍາມະດາທີ່ຜ່ານມາ, ຄວາມແຕກຕ່າງແມ່ນ: ມູນຄ່າຂອງຄໍລໍາດັດສະນີຕ້ອງເປັນເອກະລັກ, ແຕ່ຄ່າ null ແມ່ນອະນຸຍາດໃຫ້.ໃນກໍລະນີຂອງດັດສະນີປະສົມປະສານ, ການປະສົມປະສານຂອງຄ່າຄໍລໍາຕ້ອງເປັນເອກະລັກ.ມັນ​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ສ້າງ​ຕັ້ງ​ຂຶ້ນ​ໃນ​ວິ​ທີ​ການ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

ສ້າງດັດສະນີ

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 (column_list): ຄໍາຖະແຫຼງການນີ້ເພີ່ມລະຫັດຫຼັກ, ຊຶ່ງຫມາຍຄວາມວ່າຄ່າດັດສະນີຕ້ອງເປັນເອກະລັກແລະບໍ່ສາມາດເປັນ NULL.
  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): ມູນຄ່າຂອງດັດຊະນີທີ່ສ້າງຂຶ້ນໂດຍຄໍາຖະແຫຼງນີ້ຕ້ອງເປັນເອກະລັກ (ຍົກເວັ້ນ NULL, NULL ອາດຈະປາກົດຫຼາຍຄັ້ງ).
  • ALTER TABLE tbl_name ADD INDEX index_name (column_list): ເພີ່ມດັດຊະນີປົກກະຕິ, ມູນຄ່າດັດສະນີສາມາດປາກົດຫຼາຍຄັ້ງ.
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):ຄໍາຖະແຫຼງການກໍານົດດັດຊະນີເປັນ FULLTEXT ສໍາລັບການດັດສະນີຂໍ້ຄວາມເຕັມ.

ຕົວຢ່າງຕໍ່ໄປນີ້ແມ່ນການເພີ່ມດັດສະນີໃສ່ຕາຕະລາງ.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

ທ່ານຍັງສາມາດໃຊ້ DROP clause ໃນຄໍາສັ່ງ ALTER ເພື່ອຫຼຸດລົງດັດສະນີ.ລອງໃຊ້ຕົວຢ່າງຕໍ່ໄປນີ້ເພື່ອຫຼຸດດັດຊະນີ:

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
........

ຫວັງ Chen Weiliang Blog ( https://www.chenweiliang.com/ ) ແບ່ງປັນ "MySQL Database Index Type/Create/Use Combination ALTER Statement Usage in MySQL", ເຊິ່ງເປັນປະໂຫຍດແກ່ເຈົ້າ.

ຍິນດີຕ້ອນຮັບແບ່ງປັນການເຊື່ອມຕໍ່ຂອງບົດຄວາມນີ້:https://www.chenweiliang.com/cwl-496.html

ຍິນດີຕ້ອນຮັບສູ່ຊ່ອງ Telegram ຂອງບລັອກຂອງ Chen Weiliang ເພື່ອຮັບອັບເດດຫຼ້າສຸດ!

🔔 ເປັນຜູ້ທຳອິດທີ່ໄດ້ຮັບ "ຄູ່ມືການໃຊ້ເຄື່ອງມືການຕະຫຼາດເນື້ອຫາ ChatGPT AI" ທີ່ມີຄຸນຄ່າໃນລາຍການທາງເທິງ! 🌟
📚ຄູ່ມືນີ້ມີຄຸນຄ່າອັນມະຫາສານ, 🌟ນີ້ເປັນໂອກາດທີ່ຫາຍາກ, ຢ່າພາດມັນ! ⏰⌛💨
Share and like ຖ້າມັກ!
ການ​ແບ່ງ​ປັນ​ແລະ​ການ​ຖືກ​ໃຈ​ຂອງ​ທ່ານ​ແມ່ນ​ການ​ຊຸກ​ຍູ້​ຢ່າງ​ຕໍ່​ເນື່ອງ​ຂອງ​ພວກ​ເຮົາ​!

 

评论评论

ທີ່ຢູ່ອີເມວຂອງທ່ານຈະບໍ່ຖືກເຜີຍແຜ່. ທົ່ງນາທີ່ກໍານົດໄວ້ແມ່ນຖືກນໍາໃຊ້ * ປ້າຍ ກຳ ກັບ

ເລື່ອນໄປເທິງສຸດ