API ถูกเรียกโดยผู้ใช้หลายบทบาทและต้องบังคับสิทธิ์ระดับวัตถุ จึงวินิจฉัยว่า ระบบเว็บแอปพลิเคชันมีหน้าแสดงรายงานที่ต้องดึงข้อมูลจากฐานข้อมูล 3 ตารางพร้อมกัน และแต่ละ Query ใช้เวลาประมาณ 500ms วิธีใดลดเวลารอที่ดีที่สุด
กส่ง Query ทั้ง 3 แบบ Parallel โดยใช้ Promise.all() หรือ Async Concurrent Execution
ขแคช Query ทั้งหมดไว้ใน Cookie เพื่อลดการดึงข้อมูล
คดึงข้อมูลทีละ Query ตามลำดับและแสดงผลเมื่อครบทั้งหมด
งรวม Query ทั้ง 3 ตารางเป็น Query เดียวด้วยการ JOIN เสมอในทุกกรณี โดยไม่พิจารณาว่าข้อมูลมีความสัมพันธ์กันหรือไม่ ซึ่งจะช่วยลดเวลารอได้ดีที่สุด
เฉลยอธิบาย
การส่ง Query แบบ Parallel ด้วย Promise.all() ทำให้ทั้ง 3 Query ทำงานพร้อมกัน รวมเวลารอเพียง ~500ms แทนที่จะเป็น 1,500ms ถ้าทำตามลำดับ ตัวเลือก A ไม่เสมอไปว่า JOIN จะดีกว่า ขึ้นอยู่กับ Index และโครงสร้างข้อมูล อีกทั้งอาจทำให้ Query ซับซ้อนขึ้น, ตัวเลือก B ใช้เวลารวมสูงสุด ~1,500ms, ตัวเลือก D Cookie ไม่เหมาะเก็บผลลัพธ์ Query เพราะขนาดจำกัด (~4KB) ฐานความปลอดภัยปัจจุบัน: OWASP Top 10:2025 — https://owasp.org/Top10/