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/

ข้อสอบอื่นในวิชาความรู้เกี่ยวกับการพัฒนาโปรแกรมระบบงานในลักษณะ Web Application

ดูข้อสอบวิชานี้ทั้งหมด →