ขอบคุณทุกท่านมากครับ การทำ index ผมยังงงๆ นะครับ การทำ index อันเดียวอย่าง index(a) index(b) กับการทำ index(a,b) มันไม่เหมือนกันใช่ไหมครับ
ประมาณว่า ผม where a=1 ตัวเดียวก็ทำ index(a) แล้วถ้าผม where a=1,b=2 จะต้องทำ index(a) index(b) หรือ index(a,b) ครับ
เท่าที่อ่านมาเหมือนกับว่าตัวเล็กตัวใหญ่ก็มีผลด้วยนะ แล้วการเรียงซ้ายไปขวาก็มีผลให้ทำงานหรือไม่เช่นกัน ผมเข้าใจถูกต้องไหมครับ
ส่วน memcache เดี๋ยวลองศึกษาดูครับ ยังทำไม่ค่อยเป็น
ถ้ามี index(a) แ้ลวค้นด้วย where a=1 ก็สามารถใช้ประโยชน์จาก index(a) ในการทำ index seek แทนการทำ table scan
ถ้ามี index(a, b) แ้ลวค้นด้วย where a=1 หรือ where a=1 and b=1 ก็จะได้ประโยชน์จาก index(a, b) ครับ แต่ where b=1 จะไม่ได้ประโยชน์นะครับ เพราะ index คือดัชนีค้นหาที่เก็บข้อมูลแบบเรียงไว้แล้วเพื่อค้นหาได้เร็ว (มักเป็นโครงสร้างข้อมูลแบบ B-tree ทำให้การค้นหาที่ช้าแบบ O(n) เปลี่ยนไปเร็วแบบ O(log(n))) a, b คือเอาทั้งสองตัวมาเรียงกัน เหมือนดัชนีค้นหาในสมุดโทรศัพท์ที่เรียงตามชื่อแล้วนามสกุล เอานามสกุลไปค้นย่อมไม่ได้