目次
1. ดัชนี MySQL คืออะไร: กุญแจสู่การเพิ่มประสิทธิภาพฐานข้อมูล
โดยการใช้ดัชนีในฐานข้อมูล MySQL อย่างมีประสิทธิภาพ คุณสามารถเพิ่มประสิทธิภาพของคิวรีได้อย่างมาก ดัชนีคือโครงสร้างข้อมูลที่สร้างขึ้นสำหรับคอลัมน์ (คอลัมน์) เฉพาะของฐานข้อมูล มีหน้าที่เพิ่มความเร็วในการค้นหาและการกรอง ตัวอย่างเช่น เมื่อดึงข้อมูลเฉพาะจากข้อมูลจำนวนมาก การใช้ดัชนีจะทำให้ข้ามการสแกนข้อมูลทั้งหมดและค้นหาเฉพาะคอลัมน์ที่ระบุในดัชนีบทบาทและประเภทของดัชนี
ดัชนีของ MySQL มีประเภทต่อไปนี้- PRIMARY(คีย์หลัก):เป็นคีย์ที่เป็นเอกลักษณ์ที่อนุญาตให้มีเพียงหนึ่งค่าในแต่ละตาราง ใช้เป็นตัวระบุหลักของตาราง
- UNIQUE ดัชนี:ดัชนีที่รักษาความเป็นเอกลักษณ์ ป้องกันไม่ให้ค่าซ้ำถูกแทรกลงในคอลัมน์ที่ระบุ
- ดัชนีทั่วไป:ดัชนีที่ไม่มีข้อจำกัดความเป็นเอกลักษณ์ ใช้เพื่อเพิ่มประสิทธิภาพการค้นหาของคอลัมน์เฉพาะ
2. วิธีพื้นฐานในการตรวจสอบดัชนีใน MySQL
ใน MySQL เราใช้คำสั่ง SHOW INDEX เพื่อตรวจสอบดัชนีที่สร้างไว้ คำสั่งนี้เป็นคำสั่ง SQL ที่ง่ายและจะแสดงข้อมูลดัชนีภายในตารางที่ระบุ ต่อไปนี้จะแสดงขั้นตอนโดยละเอียดโครงสร้างพื้นฐานของ SHOW INDEX และเนื้อหาที่แสดง
SHOW INDEX FROM ชื่อ_ตาราง;
คำอธิบายเนื้อหาที่แสดง
เมื่อรันคำสั่งนี้ จะมีข้อมูลดังต่อไปนี้แสดงออกมา- Table:ชื่อของตารางที่มีดัชนี
- Non_unique:แสดงว่าดัชนีเป็นเอกลักษณ์ (0) หรืออนุญาตให้ซ้ำได้ (1)
- Key_name:ชื่อของดัชนี
- Column_name:ชื่อคอลัมน์ที่ดัชนีถูกนำไปใช้
- Cardinality:การประมาณค่าที่เป็นเอกลักษณ์ที่บันทึกในดัชนี ใช้เป็นตัวชี้วัดประสิทธิภาพการค้นหา
3. การตรวจสอบดัชนีในตาราง INFORMATION_SCHEMA.STATISTICS
นอกจากคำสั่ง SHOW INDEX แล้ว MySQL ยังมีวิธีตรวจสอบดัชนีโดยอ้างอิงตาราง INFORMATION_SCHEMA.STATISTICS วิธีนี้สะดวกสำหรับการแสดงรายการดัชนีทั้งหมดของฐานข้อมูลและสามารถดึงข้อมูลที่ละเอียดขึ้นได้。คิวรีพื้นฐานของ INFORMATION_SCHEMA.STATISTICS
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'ชื่อฐานข้อมูล';
รายละเอียดผลลัพธ์ของคิวรี
- TABLE_SCHEMA: ชื่อฐานข้อมูลที่ดัชนีเป็นส่วนหนึ่งของ
- TABLE_NAME: ชื่อของตารางที่ดัชนีอยู่
- COLUMN_NAME: ชื่อคอลัมน์ที่ดัชนีถูกนำไปใช้
- INDEX_NAME: ชื่อของดัชนี
4. วิธีการเพิ่มและลบดัชนีและผลกระทบของมัน
วิธีการเพิ่มดัชนี
ดัชนีสามารถเพิ่มได้ภายหลังตามความต้องการโดยใช้คำสั่งต่อไปนี้เพื่อสร้างดัชนีบนคอลัมน์ที่ระบุCREATE INDEX ชื่อดัชนี ON ชื่อเทเบิล(ชื่อคอลัมน์);
เช่น หากต้องการเพิ่มดัชนีให้คอลัมน์ email
ของตาราง users
ให้ทำตามดังนี้:CREATE INDEX idx_email ON users(email);
วิธีการลบดัชนี
ดัชนีที่ไม่จำเป็นสามารถลบออกเพื่อเพิ่มประสิทธิภาพของการทำงาน INSERT และ UPDATE ได้ การลบใช้คำสั่ง DROP INDEXDROP INDEX ชื่อดัชนี ON ชื่อเทเบิล;
ตัวอย่างของดัชนีที่ไม่จำเป็น ได้แก่ ดัชนีที่ตั้งบนคอลัมน์ที่ไม่ได้ใช้ในเงื่อนไขการค้นหา (WHERE) การลบดัชนีสามารถทำให้ความเร็วในการแทรกและอัปเดตข้อมูลดีขึ้น5. ตรวจสอบประสิทธิภาพของดัชนีด้วยคำสั่ง EXPLAIN
คำสั่ง EXPLAIN ของ MySQL มีประโยชน์ในการตรวจสอบแผนการดำเนินการของคิวรีและสำรวจว่าดัชนีใดถูกนำมาใช้ ซึ่งช่วยให้ประเมินประสิทธิภาพของดัชนีและทำการปรับแต่งตามความจำเป็นวิธีการใช้คำสั่ง EXPLAIN อย่างพื้นฐาน
EXPLAIN SELECT * FROM ชื่อเทเบิล WHERE ชื่อคอลัมน์ = 'เงื่อนไข';
เมื่อใช้คำสั่งนี้ คุณสามารถตรวจสอบได้ว่าดัชนีถูกใช้หรือมีการสแกนทั้งหมดของแถว ผลลัพธ์จะประกอบด้วยรายการต่อไปนี้:- type:ประเภทของคิวรี (ALL หมายถึงสแกนทั้งหมด, INDEX หมายถึงใช้ดัชนี)
- possible_keys:รายการดัชนีที่สามารถใช้กับคิวรีได้
- key:ชื่อดัชนีที่ถูกใช้จริง
- rows:จำนวนแถวที่คาดว่าจะสแกน