สร้างดัชนีใน MySQL: บทช่วยสอนดัชนี MySQL [2022]
เผยแพร่แล้ว: 2021-01-01นักวิทยาศาสตร์ข้อมูลหรือโปรแกรมเมอร์จะต้องทำงานกับข้อมูลจำนวนมาก และจำเป็นต้องสามารถจัดการกับข้อมูลได้อย่างมีประสิทธิภาพเพื่อการดำเนินการที่รวดเร็วขึ้น พวกเขายังต้องรู้วิธีการจัดระเบียบข้อมูลและวิธีการที่เร็วที่สุดในการเข้าถึงข้อมูลที่ต้องการได้อย่างง่ายดาย
เนื่องจาก MySQL เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ที่มีแอปพลิเคชันในส่วนต่างๆ เช่น ฐานข้อมูลบนเว็บ แอปพลิเคชันอีคอมเมิร์ซ โซเชียลมีเดีย เป็นต้น นักวิทยาศาสตร์ด้านข้อมูลจึงจำเป็นต้องรู้เทคนิคทั้งหมดที่เกี่ยวข้องกับ MySQL ซึ่งหนึ่งในนั้นคือดัชนี บทความนี้อธิบายวิธี สร้างดัชนีใน MySQL
สารบัญ
ดัชนีคืออะไร?
ใน MySQL ดัชนีจะใช้เพื่อจัดเรียงข้อมูลตามลำดับที่เป็นระเบียบ และดึงข้อมูลอย่างมีประสิทธิภาพและรวดเร็ว สร้างขึ้นโดยใช้คอลัมน์อย่างน้อยหนึ่งคอลัมน์ที่จะใช้ในการกรองข้อมูล ดัชนีคือชนิดของตารางที่เก็บเขตข้อมูลหลักหรือดัชนี และตัวชี้ไปยังแต่ละระเบียนในตารางหลัก
เพื่อความเข้าใจที่ดีขึ้น สามารถใช้ดัชนีหนังสือเป็นตัวอย่างได้ แทนที่จะค้นหาหน้าโดยดูทุกหน้าในหนังสือ ดัชนีหนังสือสามารถตรวจสอบเพื่อค้นหาหน้าที่กำลังมองหา
ในระบบฐานข้อมูลส่วนใหญ่ ต้องการประสิทธิภาพสูงและรวดเร็ว ธุรกิจจำนวนมากลงทุนเงินจำนวนมหาศาลกับฮาร์ดแวร์เพื่อการดึงข้อมูลและการจัดการที่รวดเร็วขึ้น แต่การเพิ่มประสิทธิภาพฐานข้อมูลทำให้ต้นทุนลดลงได้
เวลาตอบสนองมักจะนานขึ้นเนื่องจากบันทึกจะถูกจัดเก็บแบบสุ่ม และคำค้นหาต้องค้นหาข้อมูลที่จำเป็นโดยการวนซ้ำผ่านระเบียนที่เก็บไว้ทั้งหมด ดัชนีทำให้การค้นหานี้ง่ายขึ้นและเร็วขึ้น

อ่าน: เปลี่ยนชื่อคอลัมน์ในSQL
สร้างดัชนี
คุณสามารถ สร้างดัชนีใน MySQL บนตารางได้โดยใช้ไวยากรณ์พื้นฐานต่อไปนี้
สร้างดัชนี index_name table_name (column_name);
คุณยังสามารถสร้างดัชนีเฉพาะบนตารางได้ ซึ่งหมายความว่าชื่อไม่ซ้ำกัน และสองแถวไม่สามารถมีชื่อเดียวกันได้ ไวยากรณ์ต่อไปนี้สามารถใช้สำหรับสิ่งนี้
สร้างดัชนีที่ไม่ซ้ำ index_name บน table_name (column_name);
หากมีการสร้างดัชนีรองสำหรับคอลัมน์ MySQL จะจัดเก็บค่าในโครงสร้างข้อมูลที่แยกจากกัน เช่น B-Tree และ Hash ใน MySQL หากคอลัมน์เป็นคอลัมน์สตริง คุณสามารถสร้างดัชนีสำหรับส่วนนำหน้าของค่าคอลัมน์ของคอลัมน์สตริงได้โดยใช้ไวยากรณ์:
column_name(ความยาว)
ในการสร้างส่วนคีย์คำนำหน้าคอลัมน์เมื่อสร้างตาราง คุณสามารถใช้ไวยากรณ์ต่อไปนี้:
สร้างตาราง table_name(
column_list,
INDEX(column_name(ความยาว))
);
และเพื่อเพิ่มดัชนีลงในตารางที่มีอยู่:
สร้างดัชนี index_name บน table_name (column_name(length));
ความยาวที่นี่คือจำนวนอักขระหากเป็นประเภทสตริงที่ไม่ใช่ไบนารี เช่น CHAR, VARCHAR และ TEXT และจำนวนไบต์หากเป็นประเภทสตริงไบนารี เช่น BINARY, VARBINARY และ BLOB คุณยังสามารถสร้างส่วนสำคัญนำหน้าคอลัมน์สำหรับคอลัมน์ CHAR, VARCHAR, BINARY และ VARBINARY ใน MySQL จำเป็นต้องระบุส่วนสำคัญของคำนำหน้าคอลัมน์ หากคุณได้สร้างดัชนีสำหรับคอลัมน์ BLOB และ TEXT
ในกรณีของดัชนี FULLTEXT ที่รองรับเฉพาะตาราง InnoDB และ MyISAM จะรวมได้เฉพาะคอลัมน์ CHAR, VARCHAR และ TEXT ไม่สนับสนุนการจัดทำดัชนีคำนำหน้าคอลัมน์ และหากมีการระบุความยาวของคำนำหน้า ระบบจะไม่สนใจคำนำหน้า
ต้องอ่าน: แนวคิดโครงการ SQL
การเปลี่ยนแปลงตารางเพื่อเพิ่มหรือวางดัชนี
ในการเพิ่มดัชนีลงในตาราง มีคำสั่งสี่ประเภทที่สามารถใช้ได้:
- ในการเพิ่มคีย์หลัก:
แก้ไขตาราง table_name เพิ่มคีย์หลัก (column_list);

ค่าที่จัดทำดัชนีที่นี่ควรไม่ซ้ำกันและไม่สามารถเป็น NULL ได้
- สำหรับดัชนีที่มีค่าเฉพาะ:
แก้ไขตาราง table_name ADD UNIQUE index_name (column_list);
ค่าควรไม่ซ้ำกัน ยกเว้น NULL ที่อาจปรากฏขึ้นหลายครั้ง
- ในการเพิ่มดัชนีธรรมดา:
แก้ไขตาราง table_name เพิ่มดัชนี index_name (column_list);
ที่นี่ค่าสามารถปรากฏได้มากกว่าหนึ่งครั้ง
- ในการสร้างดัชนี FULLTEXT พิเศษ:
แก้ไขตาราง table_name เพิ่ม FULLTEXT index_name (column_list);
สามารถใช้ดัชนี FULLTEXT เพื่อวัตถุประสงค์ในการค้นหาข้อความ
ในตารางที่มีอยู่
ในการเพิ่มดัชนีในตารางที่มีอยู่ คุณสามารถใช้ไวยากรณ์ต่อไปนี้:
แก้ไขตาราง table_name เพิ่มดัชนี (index_name);
ในการลบดัชนีในตาราง จะใช้คำสั่ง DROP INDEX:
แก้ไขตาราง table_name DROP INDEX (index_name);
แสดงข้อมูลดัชนี
ในการแสดงรายการดัชนีทั้งหมดที่เชื่อมโยงกับตารางใดๆ ให้ใช้คำสั่ง SHOW INDEX
แสดงดัชนีจาก table_name\G
'\G' ใช้เพื่อสร้างรายการในรูปแบบแนวตั้ง เพื่อหลีกเลี่ยงการตัดรอบบรรทัดยาว
อ่านเพิ่มเติม: คำถามและคำตอบสัมภาษณ์ SQL
ดัชนีจากมากไปน้อย
InnoDB สามารถจัดเก็บรายการในลำดับจากมากไปน้อยเมื่อดัชนีเป็นดัชนีจากมากไปหาน้อย ดังนั้น เมื่อมีการร้องขอลำดับจากมากไปน้อยในแบบสอบถาม เครื่องมือเพิ่มประสิทธิภาพจะเลือกดัชนีนี้ ซึ่งจะมีประสิทธิภาพมากขึ้นสำหรับการสืบค้นด้วยคำสั่งย่อย ORDER BY สิ่งเหล่านี้ได้รับการสนับสนุนโดยเอ็นจิ้นการจัดเก็บข้อมูล InnoDB เท่านั้น
ไวยากรณ์สำหรับการสร้างหรือเพิ่มดัชนีจากมากไปหาน้อยเป็นเหมือนการเปลี่ยนแปลงหรือสร้างไวยากรณ์ที่ใช้ด้านบน
แก้ไขตาราง table_name เพิ่ม index_name (col1_name desc, col2_name asc);
สร้างดัชนี index_name บน table_name (col1_name desc, col2_name asc);
ดัชนีที่มองไม่เห็น
ในการทำเครื่องหมายดัชนีว่าไม่พร้อมใช้งานสำหรับเครื่องมือเพิ่มประสิทธิภาพการสืบค้น สามารถใช้ดัชนีที่มองไม่เห็นได้ MySQL อัปเดตดัชนีที่มองไม่เห็นเมื่อข้อมูลในคอลัมน์ที่เกี่ยวข้องกับดัชนีเปลี่ยนแปลง ดัชนีจะมองเห็นได้โดยค่าเริ่มต้นและเพื่อให้มองไม่เห็น คุณต้องประกาศการเปิดเผยอย่างชัดเจน ณ เวลาที่สร้างหรือโดยใช้คำสั่ง ALTER TABLE
ในการสร้างดัชนีที่มองไม่เห็นจะใช้ไวยากรณ์ต่อไปนี้:
สร้างดัชนี index_name บน table_name (c1, c2…) มองไม่เห็น;
ในการเปลี่ยนการมองเห็นของดัชนีที่มีอยู่ ใช้ไวยากรณ์ต่อไปนี้:
เปลี่ยนตาราง table_name ALTER INDEX index_name [VISIBLE | ล่องหน];

ลงทะเบียนเรียน หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
บทสรุป
สามารถปรับปรุงประสิทธิภาพของคำค้นหา MySQL ได้โดยใช้ดัชนี สิ่งเหล่านี้สามารถกำหนดได้เมื่อสร้างตารางหรือสามารถเพิ่มในภายหลังได้หากสร้างตารางแล้ว
บทความนี้ให้คำอธิบายสั้น ๆ ว่าดัชนีคืออะไรและทำไมจึงใช้ ส่วนถัดไปจะอธิบายวิธี สร้างดัชนีใน MySQL วิธีเพิ่มลงในตารางที่มีอยู่และวิธีสร้างดัชนีเฉพาะ
คำสั่งต่าง ๆ เพื่อแก้ไขตารางและสร้างหรือวางดัชนียังอธิบายพร้อมกับการแสดงข้อมูลดัชนี นอกจากนี้ยังมีการอธิบายสั้น ๆ เกี่ยวกับดัชนีจากมากไปน้อยและดัชนีที่มองไม่เห็น
โดยรวมแล้ว การเรียนรู้และลงมือปฏิบัติจริงกับฐานข้อมูลทั้งหมดที่กล่าวถึงในบทความนี้จะเพิ่มประสบการณ์ของคุณ ศึกษาภาพรวมของหลักสูตร การเรียนรู้ และโอกาสในการทำงานที่เกี่ยวข้อง—แพลตฟอร์มอย่าง upGrad เสนอหลักสูตรที่เต็มไปด้วยพลังซึ่งออกแบบโดยสถาบันที่มีชื่อเสียงอย่าง IIIT-B ใน Executive PG Program Full Stack Development
