บริษัทเทคโนโลยีใหญ่มีฐานข้อมูลขนาดใหญ่ที่จำเป็นต้องค้นหาข้อมูลจากตาราง Customer ที่มีข้อมูลมากกว่า 100 ล้านแถว ทุกวันมีการค้นหาเกือบ 1 ล้านครั้ง ปัญหาด้านประสิทธิภาพคืออะไร และแนวทางแก้ไขควรเป็นอย่างไร?
กเพิ่มขนาดชนิดข้อมูลของคอลัมน์ที่ค้นหาเพื่อให้ระบบอ่านค่าได้เร็วขึ้น
ขสร้างดัชนีบนคอลัมน์ที่ใช้กรองหรือค้นหาบ่อย แล้วตรวจแผนการสืบค้น
คเรียงข้อมูลด้วย ORDER BY ทุกครั้งก่อนใช้เงื่อนไขค้นหาในคำสั่งเดียวกัน
งสร้างดัชนีทุกคอลัมน์โดยไม่ดูรูปแบบ query และภาระการเขียนข้อมูล
เฉลยอธิบาย
ดัชนีช่วยค้นหาแถวได้เร็วขึ้นเมื่อออกแบบให้สัมพันธ์กับ query ที่ใช้จริง ดังนั้นคำตอบที่เหมาะที่สุดคือ “สร้างดัชนีบนคอลัมน์ที่ใช้กรองหรือค้นหาบ่อย แล้วตรวจแผนการสืบค้น” ส่วนตัวลวงที่ใกล้เคียงที่สุดไม่ผ่านเพราะ ดัชนีทุกคอลัมน์เพิ่มค่าใช้จ่ายโดยอาจไม่ช่วย query ที่ใช้จริง