ประเภทดัชนีฐานข้อมูล 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

มีสี่วิธีในการเพิ่มดัชนีลงในตารางข้อมูล:

  • เปลี่ยนตาราง tbl_name เพิ่มคีย์หลัก (column_list): คำสั่งนี้เพิ่มคีย์หลัก ซึ่งหมายความว่าค่าดัชนีต้องไม่ซ้ำกันและไม่สามารถเป็น NULL ได้
  • แก้ไขตาราง tbl_name ADD UNIQUE index_name (column_list): ค่าของดัชนีที่สร้างโดยคำสั่งนี้ต้องไม่ซ้ำกัน (ยกเว้น NULL NULL อาจปรากฏขึ้นหลายครั้ง)
  • เปลี่ยนตาราง tbl_name เพิ่มดัชนี index_name (column_list): เพิ่มดัชนีปกติ ค่าดัชนีสามารถปรากฏหลายครั้ง
  • แก้ไขตาราง tbl_name เพิ่ม FULLTEXT index_name (column_list):คำสั่งระบุดัชนีเป็น FULLTEXT สำหรับการจัดทำดัชนีข้อความแบบเต็ม

ตัวอย่างต่อไปนี้คือการเพิ่มดัชนีลงในตาราง

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

คุณยังสามารถใช้คำสั่ง DROP ในคำสั่ง 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;

คุณต้องระบุคีย์หลักเท่านั้นเมื่อวางคีย์หลัก แต่เมื่อวางดัชนี คุณต้องทราบชื่อดัชนี


แสดงข้อมูลดัชนี

คุณสามารถใช้คำสั่ง SHOW INDEX เพื่อแสดงรายการข้อมูลดัชนีที่เกี่ยวข้องในตารางข้อมูลผลลัพธ์สามารถจัดรูปแบบได้โดยการเพิ่ม \G

ลองตัวอย่างต่อไปนี้:

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

หวัง Chen Weiliang บล็อก ( https://www.chenweiliang.com/ ) แชร์ "ประเภทดัชนีฐานข้อมูล MySQL/สร้าง/ใช้การรวมกัน ALTER การใช้คำสั่งใน MySQL" ซึ่งมีประโยชน์สำหรับคุณ

ยินดีต้อนรับสู่การแบ่งปันลิงค์ของบทความนี้:https://www.chenweiliang.com/cwl-496.html

ยินดีต้อนรับสู่ช่อง Telegram ของบล็อกของ Chen Weiliang เพื่อรับข่าวสารล่าสุด!

🔔 เป็นคนแรกที่ได้รับ "คู่มือการใช้งานเครื่องมือ AI การตลาดเนื้อหา ChatGPT" อันทรงคุณค่าในไดเรกทอรีด้านบนของช่อง! 🌟
📚 คู่มือนี้มีคุณค่ามหาศาล 🌟 นี่เป็นโอกาสที่หายาก อย่าพลาด! ⏰⌛💨
แชร์และชอบถ้าคุณชอบ!
การแบ่งปันและไลค์ของคุณเป็นแรงจูงใจอย่างต่อเนื่องของเรา!

 

发表评论

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ 必填项已用 * 标注