แจกโครงสร้างฐานข้อมูลไปก่อน 3 ตาราง แล้วจะมาอัพเดตวิดีโอสอนนานๆครับ ^^; -- -- Table structure for table `tb_student_list` -- CREATE TABLE IF NOT EXISTS `tb_student_list` ( `std_id` int(11) NOT NULL AUTO_INCREMENT, `std_code` varchar(4) NOT NULL, `prename` varchar(6) NOT NULL, `firstname` varchar(50) NOT NULL, `lastname` varchar(50) NOT NULL, `nickname` varchar(20) NOT NULL, `alias` varchar(30) NOT NULL COMMENT 'ฉายา/เพื่อนเรียก', `gender` varchar(10) NOT NULL, `birthday` date NOT NULL, `address` varchar(250) NOT NULL, `tel_number` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, PRIMARY KEY (`std_id`), UNIQUE KEY `std_code` (`std_code`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='รายชื่อนักเรียน' AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- Table structure for table `tb_student_score_detail` -- CREATE TABLE IF NOT EXISTS `tb_studen...
สำหรับตัวอย่างนี้จะเป็นการ JOIN ตาราง 2 ตาราง 1. tb_reject_hd 2. tb_reject_desc ซึ่งจะเชื่อมกันด้วยฟิลด์ docno จะเห็นว่าเราสามารถคิวรี่เรียกข้อมูลออกมาได้ตอนที่ยังไม่ใส่ ORDER BY แต่เมื่อใส่ ORDER BY เข้าไป จะหมุนค้างจนหน้าเว็บหยุดทำงาน จากนั้นก็ลองเพิ่ม INDEX ให้กับฟิลด์ docno ในตาราง tb_reject_desc ซึ่งในตัวอย่างนี้จะสร้างตารางใหม่ขึ้นมาจากตารางเดิม เปลี่ยนชื่อเป็น tb_reject_desc_with_index และทำการเพิ่ม INDEX KEY เข้าไป เมื่อทดสอบคิวรี่แบบมี ORDER BY จะเห็นว่าสามารถแสดงผลได้ทันที จากการสังเกตตัวเลขเวลาในการประมวลผล จะเห็นได้ว่าแบบไม่ใช้ ORDER BY จะทำงานเร็วกว่า แต่ในการทำงานส่วนใหญ่ก็มักจะต้องใช้ ORDER BY อย่างหลีกเลี่ยงไม่ได้ เช่นกรณีค้นหา แบบเรียงลำดับ ตัวอย่างโค้ดคิวรี่ข้อมูลจากตารางที่ Add Index Key แล้ว <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Add Index Key</title> </head> <body> <h2>ORDER BY with ...