เบื้องหลัง SQL Query ถูกประมวลผลในฐานข้อมูลอย่างไร
SQL เกือบไม่ได้ใช้ชื่อนี้ เพราะโดนบริษัทเครื่องบินฟ้อง — เรื่องนี้ฟังดูเหมือนมุกตลก แต่เป็นเรื่องจริงที่อยู่เบื้องหลังภาษาที่โปรแกรมเมอร์ทั่วโลกใช้งานทุกวัน หลายคนพิมพ์คำสั่ง SELECT เป็นร้อยครั้งต่อวันโดยไม่เคยรู้เลยว่าเบื้องหลังนั้นฐานข้อมูลทำอะไรบ้างกว่าจะได้ผลลัพธ์กลับมาบนหน้าจอ บทความนี้จะพาไปดูตั้งแต่ต้นทางจนจบทาง ว่า Query หนึ่งคำสั่งเดินทางผ่านกลไกอะไรบ้างภายในเครื่องยนต์ของฐานข้อมูลอย่าง PostgreSQL หรือ MySQL TL;DR: เมื่อรัน SQL Query ฐานข้อมูลจะประมวลผลผ่าน 4 ขั้นตอนหลักคือ Parser (ตรวจไวยากรณ์), Query Rewriter (ปรับโครงสร้าง), Query Optimizer (เลือกแผนที่ต้นทุนต่ำสุดโดยพิจารณา Index Scan, Join Algorithm และสถิติข้อมูล) และ Execution Engine (ดึงข้อมูลจริงผ่าน Buffer Pool แล้วส่งผลลัพธ์กลับมา) การเข้าใจกลไกนี้ช่วยให้เขียน Query ที่เร็วขึ้นได้หลายเท่าโดยไม่ต้องเปลี่ยนฮาร์ดแวร์เลย Key Facts ที่คนส่วนใหญ่ไม่รู้ SQL เดิมชื่อ ‘SEQUEL’ คิดค้นโดย Donald Chamberlin … Read more