ระบบโทรคมนาคมมีตาราง Call (CallID, CallerNumber, ReceiverNumber, Duration, CallTime) และต้องรองรับ Query ค้นหาประวัติการโทรของเบอร์โทรศัพท์หนึ่งๆ บ่อยครั้ง กลยุทธ์การสร้าง Index ที่เหมาะสมที่สุดคือข้อใด
กสร้าง Composite Index บน (CallerNumber, CallTime) และ Index แยกบน ReceiverNumber เพื่อรองรับการค้นหาทั้งผู้โทรออกและผู้รับสาย
ขสร้าง Index เฉพาะบน CallID ซึ่งเป็น Primary Key เพราะระบบจัดการ Index ให้อัตโนมัติและเพียงพอสำหรับทุก Query
คสร้าง Index บน Duration และ CallTime เพื่อรองรับการกรองข้อมูลตามช่วงเวลาและความยาวของการโทร
งสร้าง Unique Index บน CallerNumber และ ReceiverNumber พร้อมกันเพื่อป้องกันการบันทึกการโทรซ้ำและเพิ่มความเร็วในการค้นหา
เฉลยอธิบาย
Query ค้นหาประวัติการโทรของเบอร์หนึ่งๆ มักใช้เงื่อนไข WHERE CallerNumber = ? หรือ WHERE ReceiverNumber = ? การสร้าง Composite Index บน (CallerNumber, CallTime) ช่วยให้ค้นหาผู้โทรออกและเรียงตามเวลาได้เร็ว ส่วน Index แยกบน ReceiverNumber รองรับการค้นหาฝั่งผู้รับสาย ทำให้ครอบคลุมทั้ง 2 กรณีที่พบบ่อยในระบบโทรคมนาคม ตัวเลือกอื่นไม่ตรงกับ Query ที่ระบุหรือใช้ Index ไม่ถูกวัตถุประสงค์