1.建立索引的時機:若表中的某字段出現在select、過濾、排序條件中,為該字段建立索引是值得的。
2.對於like '%xxx'的模糊查詢,普通的索引是無法滿足的,需要建立全文索引。
3.對於有多個條件的,比如: "...where a=xxx and b=yyy","...where a=xxx order by b","...where a=xxx group by b"。需要使用組合索引。但是組合索引只能在SQL語句中滿足"最左前綴"的條件下使用。且組合索引有一些副作用,如索引尺寸可能比數據本身大,因為組合索引的組合條目多。所以在實際應用中,要量身定做,使用慢查詢分析工具分析。
4.開啟索引緩存,直接在內存中查找索引,不用再磁盤中。
5.建立索引是有代價的,當update、delete語句執行時,會使得索引更新,將耗掉更多的時間。可以使用mysqlreport報告,了解select、update、delete、insert、replace各語句所占的百分比。