ดัชนีสามารถมีบทบาทสำคัญในการเพิ่มประสิทธิภาพการสืบค้นและค้นหาผลลัพธ์ได้อย่างรวดเร็วจากตาราง ดังนั้นจึงเป็นขั้นตอนที่สำคัญที่สุดในการเลือกคอลัมน์ที่จะจัดทำดัชนี มีสองตำแหน่งหลักที่เราสามารถพิจารณาการสร้างดัชนี: คอลัมน์ที่อ้างถึงในส่วนคำสั่ง WHERE และคอลัมน์ที่ใช้ในส่วนคำสั่ง JOIN กล่าวโดยย่อคอลัมน์ดังกล่าวควรได้รับการจัดทำดัชนีซึ่งคุณจำเป็นต้องใช้ในการค้นหาระเบียนเฉพาะ สมมติว่าเรามีตารางชื่อผู้ซื้อโดยที่คำค้นหา SELECT ใช้ดัชนีดังต่อไปนี้:
SELECT
buyer_id
FROM buyers
WHERE first_name='Tariq'
AND last_name='Iqbal'
เนื่องจากมีการอ้างอิง "buyer_id" ในส่วน SELECT จึงไม่ใช้ MySQL เพื่อ จำกัด แถวที่เลือก ดังนั้นจึงไม่จำเป็นต้องจัดทำดัชนี ด้านล่างนี้เป็นอีกตัวอย่างหนึ่งที่แตกต่างจากตัวอย่างข้างต้นเล็กน้อย:
SELECT
buyers.buyer_id,
country.name
FROM buyers LEFT JOIN country
ON buyers.country_id=country.country_id
WHERE
first_name='Tariq'
AND
last_name='Iqbal'
ตามคำค้นหาข้างต้น first_name คอลัมน์ last_name สามารถจัดทำดัชนีได้เนื่องจากอยู่ในส่วนคำสั่ง WHERE นอกจากนี้ยังสามารถพิจารณาเขตข้อมูลเพิ่มเติม country_id จากตารางประเทศเพื่อจัดทำดัชนีได้เนื่องจากอยู่ในส่วนคำสั่ง JOIN ดังนั้นการจัดทำดัชนีสามารถพิจารณาได้ในทุกฟิลด์ใน WHERE clause หรือ JOIN clause
รายการต่อไปนี้ยังมีเคล็ดลับบางประการที่คุณควรคำนึงถึงเสมอเมื่อต้องการสร้างดัชนีลงในตารางของคุณ:
- จัดทำดัชนีเฉพาะคอลัมน์ที่จำเป็นในส่วนคำสั่ง WHERE และ ORDER BY การจัดทำดัชนีคอลัมน์จำนวนมากจะส่งผลเสียบ้าง
- พยายามใช้ประโยชน์จากคุณลักษณะ "คำนำหน้าดัชนี" หรือ "ดัชนีหลายคอลัมน์" ของ MySQL หากคุณสร้างดัชนีเช่น INDEX (first_name, last_name) อย่าสร้าง INDEX (first_name) อย่างไรก็ตามไม่แนะนำให้ใช้ "คำนำหน้าดัชนี" หรือ "ดัชนีหลายคอลัมน์" ในทุกกรณีการค้นหา
- ใช้แอตทริบิวต์ NOT NULL สำหรับคอลัมน์ที่คุณพิจารณาการสร้างดัชนีเพื่อที่จะไม่จัดเก็บค่า NULL
- ใช้ตัวเลือก --log-long-format เพื่อบันทึกแบบสอบถามที่ไม่ได้ใช้ดัชนี ด้วยวิธีนี้คุณสามารถตรวจสอบไฟล์บันทึกนี้และปรับการสืบค้นของคุณให้เหมาะสม
- คำสั่ง EXPLAIN ช่วยให้คุณเปิดเผยว่า MySQL จะดำเนินการค้นหาอย่างไร จะแสดงวิธีการและในตารางลำดับที่เข้าร่วม สิ่งนี้มีประโยชน์มากสำหรับการกำหนดวิธีการเขียนแบบสอบถามที่ปรับให้เหมาะสมและจำเป็นต้องจัดทำดัชนีคอลัมน์หรือไม่
ปรับปรุง (23 ก.พ. 58):
ดัชนีใด ๆ (ดี / ไม่ดี) เพิ่มเวลาแทรกและอัปเดต
ขึ้นอยู่กับดัชนีของคุณ (จำนวนดัชนีและประเภท) ผลลัพธ์จะถูกค้นหา หากเวลาในการค้นหาของคุณเพิ่มขึ้นเนื่องจากดัชนีแสดงว่าดัชนีไม่ดี
ในหนังสือเล่มใด ๆ "หน้าดัชนี" อาจมีหน้าเริ่มต้นของบทเริ่มต้นหมายเลขหน้าหัวข้อและหน้าหัวข้อย่อยเริ่มต้นด้วย คำชี้แจงบางอย่างในหน้าดัชนีช่วยได้ แต่ดัชนีที่ละเอียดกว่าอาจทำให้คุณสับสนหรือทำให้คุณตกใจได้ ดัชนียังมีหน่วยความจำ
การเลือกดัชนีควรฉลาด โปรดทราบว่าไม่ใช่ทุกคอลัมน์ที่ต้องการดัชนี