กรณีวิเคราะห์ฐานข้อมูล 10248d4cbb9b16928822cddbb8d4f161bf6a876bb8405dd04b8b27fe5c2ff80f: เมื่อปรับปรุงระบบ ควรป้องกันความผิดพลาด รักษาความถูกต้อง และลดผลกระทบของ บริษัทเทคโนโลยีใหญ่มีฐานข้อมูลขนาดใหญ่ที่จำเป็นต้องค้นหาข้อมูลจากตาราง Customer ที่มีข้อมูลมากกว่า 100 ล้านแถว ทุกวันมีการค้นหาเกือบ 1 ล้านครั้ง ปัญหาด้านประสิทธิภาพคืออะไร และแนวทางแก้ไขควรเป็นอย่างไร?
กปัญหามีผู้ใช้มากเกินไป ต้องจำกัดจำนวนผู้ใช้พร้อมกัน
ขปัญหากำลังสแกนตารางทั้งหมด (Full Table Scan) ต้องสร้างดัชนี (Index) หรือพาร์ติชั่น (Partitioning) เพื่อค้นหาข้อมูลได้เร็วขึ้น
คปัญหาการแก้ไขข้อมูลที่ช้า ต้องลดจำนวน Index
งปัญหาการใช้ CPU มากเกินไป ต้องเลิกใช้ Foreign Key
เฉลยอธิบาย
เมื่อตารางมีข้อมูลจำนวนมากมา และต้องค้นหาบ่อย ปัญหาหลักคือการ Full Table Scan ซึ่งต้องตรวจสอบแถวทั้งหมด วิธีแก้ไขคือสร้าง Index บนคอลัมน์ที่มักจะค้นหา (เช่น Customer ID) หรือใช้ Partitioning เพื่อแบ่งข้อมูลออกเป็นส่วน ๆ ตัวเลือก B ไม่ถูกต้องเพราะ Foreign Key ไม่ใช่ปัญหา ตัวเลือก C ไม่ถูกต้องเพราะลด Index จะทำให้ค้นหาช้าลง และตัวเลือก D เกี่ยวกับ Concurrency ไม่ใช่ปัญหาหลักสำหรับการค้นหา