重要概念:mysql
1.對於mysql來講,一條sql中,一個表不管其蘊含的索引有多少,可是有且只用一條。sql
2.對於多列索引來講(a,b,c)其至關於3個索引(a),(a,b),(a,b,c)3個索引,又因爲mysql的索引優化器,其where條件後的語句是能夠亂序的,好比(b,c,a)也是能夠用到索引。若是條件中a,c出現的多,爲了更好的利用索引故最好將其修改成(a.c,b)。測試
ICP概念:優化
1. Index range 先確認索引的起止範圍。url
2. Index Filter 索引過濾。spa
3. Table Filter 表過濾。.net
mysql5.6後提出的icp就是多了第二步,之前Index filter是放在數據上操做的,如今5.6後多了第二步,所以效率提升了不少。blog
【優化口訣】
全值匹配我最愛,最左前綴要遵照;
帶頭大哥不能死,中間兄弟不能斷;
索引列上少計算,範圍以後全失效;
LIKE百分寫最右,覆蓋索引不寫*;
不等空值還有OR,索引影響要注意;
VAR引號不可丟, SQL優化有訣竅。索引
轉載單列索引與聯合索引的區別測試 https://blog.csdn.net/Abysscarry/article/details/80792876get