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