MySQL - ดัชนี

ดัชนีฐานข้อมูลคือโครงสร้างข้อมูลที่ช่วยเพิ่มความเร็วของการดำเนินการในตาราง ดัชนีสามารถสร้างได้โดยใช้คอลัมน์อย่างน้อยหนึ่งคอลัมน์ซึ่งเป็นพื้นฐานสำหรับทั้งการค้นหาแบบสุ่มอย่างรวดเร็วและการจัดลำดับการเข้าถึงบันทึกอย่างมีประสิทธิภาพ

ในขณะที่สร้างดัชนีควรพิจารณาว่าจะใช้คอลัมน์ใดในการสร้างแบบสอบถาม SQL และสร้างดัชนีอย่างน้อยหนึ่งรายการในคอลัมน์เหล่านั้น

ในทางปฏิบัติดัชนียังเป็นตารางประเภทหนึ่งซึ่งเก็บคีย์หลักหรือฟิลด์ดัชนีและตัวชี้ไปยังแต่ละระเบียนลงในตารางจริง

ผู้ใช้ไม่สามารถมองเห็นดัชนีได้ใช้เพียงเพื่อเร่งความเร็วในการสืบค้นและจะถูกใช้โดย Database Search Engine เพื่อค้นหาบันทึกอย่างรวดเร็ว

คำสั่ง INSERT และ UPDATE ใช้เวลามากขึ้นในตารางที่มีดัชนีในขณะที่คำสั่ง SELECT กลายเป็นตารางอย่างรวดเร็ว เหตุผลก็คือในขณะที่ทำการแทรกหรืออัปเดตฐานข้อมูลจำเป็นต้องแทรกหรืออัปเดตค่าดัชนีด้วย

ดัชนีที่เรียบง่ายและไม่เหมือนใคร

คุณสามารถสร้างดัชนีเฉพาะบนตาราง ดัชนีที่ไม่ซ้ำกันหมายความว่าสองแถวไม่สามารถมีค่าดัชนีเดียวกันได้ นี่คือไวยากรณ์ในการสร้างดัชนีบนตาราง

CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...);

คุณสามารถใช้คอลัมน์อย่างน้อยหนึ่งคอลัมน์เพื่อสร้างดัชนี

ตัวอย่างเช่นเราสามารถสร้างดัชนีบน tutorials_tbl โดยใช้ tutorial_author.

CREATE UNIQUE INDEX AUTHOR_INDEX ON tutorials_tbl (tutorial_author)

คุณสามารถสร้างดัชนีอย่างง่ายบนตาราง เพียงแค่ละเว้นUNIQUEคำหลักจากแบบสอบถามเพื่อสร้างดัชนีอย่างง่าย ดัชนีอย่างง่ายช่วยให้สามารถสร้างค่าที่ซ้ำกันในตารางได้

หากคุณต้องการจัดทำดัชนีค่าในคอลัมน์โดยเรียงลำดับจากมากไปหาน้อยคุณสามารถเพิ่มคำสงวน DESC หลังชื่อคอลัมน์ได้

mysql> CREATE UNIQUE INDEX AUTHOR_INDEX ON tutorials_tbl (tutorial_author DESC)

แก้ไขคำสั่งเพื่อเพิ่มและวาง INDEX

มีคำสั่งสี่ประเภทสำหรับการเพิ่มดัชนีลงในตาราง -

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) - คำสั่งนี้เพิ่มไฟล์ PRIMARY KEYซึ่งหมายความว่าค่าที่จัดทำดัชนีจะต้องไม่ซ้ำกันและไม่สามารถเป็น NULL ได้

  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) - คำสั่งนี้สร้างดัชนีที่ค่าต้องไม่ซ้ำกัน (ยกเว้นค่า 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);

คุณสามารถลด INDEX ใดก็ได้โดยใช้ DROP อนุประโยคพร้อมกับคำสั่ง ALTER

ลองใช้ตัวอย่างต่อไปนี้เพื่อดร็อปดัชนีที่สร้างไว้ด้านบน

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

คุณสามารถทิ้ง INDEX ใดก็ได้โดยใช้คำสั่ง DROP พร้อมกับคำสั่ง ALTER

แก้ไขคำสั่งเพื่อเพิ่มและวางคีย์หลัก

คุณสามารถเพิ่มคีย์หลักได้ในลักษณะเดียวกัน แต่ตรวจสอบให้แน่ใจว่าคีย์หลักทำงานบนคอลัมน์ซึ่งไม่ใช่ 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;

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

การแสดงข้อมูล INDEX

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

ลองใช้ตัวอย่างต่อไปนี้ -

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