ทำความเข้าใจเรื่อง B-tree Index ใน PostgreSQL และ MySQL
| #1 · 12 มิถุนายน 2569 เวลา 20:22 น. | |
| สวัสดีครับ วันนี้จะมาคุยกันเรื่อง B-tree Index ซึ่งเป็นหัวใจสำคัญในการทำให้การค้นหาข้อมูลในฐานข้อมูลของเราเร็วขึ้น ไม่ว่าจะเป็น PostgreSQL หรือ MySQL ก็ใช้หลักการนี้กันเป็นส่วนใหญ่ B-tree Index เปรียบเสมือนสารบัญของหนังสือครับ ช่วยให้เราหาหน้าที่ต้องการได้ไวขึ้นมาก แทนที่จะต้องไล่อ่านทุกหน้า B-tree จะจัดเรียงข้อมูลไว้เป็นโครงสร้างต้นไม้ ทำให้การค้นหาข้อมูลที่มีเงื่อนไข (WHERE clause) หรือการเรียงลำดับ (ORDER BY clause) ทำได้รวดเร็วขึ้นเยอะ หลักการทำงานง่ายๆ คือข้อมูลจะถูกจัดเก็บเป็นโหนดๆ ซึ่งแต่ละโหนดจะมีลิมิตของข้อมูล และโหนดเหล่านี้จะเชื่อมต่อกันเป็นต้นไม้ การค้นหาจะเริ่มจากโหนดบนสุด (Root Node) แล้วค่อยๆ ไล่ลงมาตามเงื่อนไขที่เรากำหนด จนเจอข้อมูลที่ต้องการ ข้อดีหลักๆ ก็คือความเร็วในการค้นหาข้อมูล โดยเฉพาะกับตารางที่มีข้อมูลจำนวนมาก นอกจากนี้ยังช่วยในการเรียงลำดับข้อมูลให้เร็วขึ้นด้วย แต่ก็มีข้อเสียคือ การสร้าง Index อาจใช้เวลา และต้องใช้พื้นที่จัดเก็บเพิ่มขึ้น รวมถึงการ Insert, Update, Delete ข้อมูลอาจจะช้าลงเล็กน้อย เพราะต้องมีการอัปเดต Index ไปพร้อมๆ กัน ในการใช้งานจริง การเลือกสร้าง Index ที่เหมาะสมกับ Query ที่เราใช้บ่อยๆ เป็นสิ่งสำคัญมาก การสร้าง Index มั่วๆ อาจไม่ช่วยให้เร็วขึ้น แถมยังกินพื้นที่และทำให้การเขียนข้อมูลช้าลงไปอีก #PostgreSQL#MySQL#Database#Indexing#Btree | |
เข้าสู่ระบบด้วย Google เพื่อร่วมตอบกระทู้ — กดปุ่มเดียวจบ ไม่ต้องสมัครอะไรเพิ่ม
