มาสร้าง Index ของตารางเพื่อเพิ่มความเร็วการประมวลผลกันเถอะครับ

"มาสร้าง Index ของตารางเพื่อเพิ่มความเร็วการประมวลผลกันเถอะครับ"

หลายๆท่านอาจจะเคยเจอปัญหาการเขียนโปรแกรมโดยเฉพาะหน้ารายงานที่มักจะประมวลผลช้า ปัญหาเกิดขึ้นได้จากหลายสาเหตุไม่ว่าจะเป็น การเขียนชุดคำสั่งสืบค้นข้อมูลที่ซับซ้อน เทคนิคการเขียนโปรแกรมหรือเกิดจากปริมาณข้อมูลเพิ่มมากขึ้นโดยไม่มีการทำ Database Tunning ซึ่ง ณ ขณะที่โปรแกรมเมอร์ทดสอบโปรแกรมอยู่นั้นนั้นอาจจะทดสอบในภาวะที่ปริมาณข้อมูลมีไม่มาก จึงอาจไม่พบปัญหาเรื่องการประมวลผลข้อมูลช้า

เทคนิคหนึ่งสำหรับการเพิ่มประสิทธิภาพการทำงานของโปรแกรมให้เร็วขึ้นคือ การทำ index ให้กับตารางแต่มีเงื่อนไขคือ Storage Engine ต้องเป็น InnoDB

แล้วการสร้าง index ในตารางจะช่วยให้ความเร็วการประมวลผลเพิ่มขึ้นได้อย่างไร .... ให้นึกภาพง่ายๆ ว่าถ้าเราต้องการหาใจความสำคัญซักเรื่องหนึ่งของหนังสือ เราจะเริ่มค้นหาจากสารบัญหรือ index ของหนังสือเล่มนั้นก่อนแล้วจึงเปิดไปยังหน้าที่มีเนื้อหาที่เราต้องการโดยละเอียด การทำเช่นนี้เราก็จะไม่ต้องไล่เปิดอ่านข้อความในหนังสือไปทีละหน้าจนกระทั่งพบเนื้อหาที่เราต้องการ หลักคิดของระบบฐานข้อมูลก็เช่นเดียวกัน

การใช้คำสั่งเพื่อสร้าง index คือ ALTER TABLE $table ADD INDEX `index_1` USING BTREE ($field1,$field2,...,$fieldn);

ลองนำไปประยุกต์ใช้ดูครับ เราจะพบความเร็วของการเชื่อมโยงข้อมูลในหลายตารางได้อย่างไม่น่าเชื่อ

Suwat Khamtum
Software Team Leader
Sapphire Research and Development