mysql 高效的索引策略

1. 索引列獨立使用,避免使用函數

例如 where to_char(xx,xx)=xx

 

2. 索引選擇性儘量大一些

 索引選擇性=不重複的索引值和總記錄的比值,返回在0到1之間

儘量選擇接近1的列建立索引,例如性別 sex不適合作爲索引,因爲它本身就只有兩種可能性,索引選擇性很低

 

3. 避免給很長的列建索引

1) 索引本身也需要佔用空間

2) 列很長,查詢的效率很低 

3) 可以使用前綴索引,取該列的前10或20個字符作爲索引

4) 可以增加冗餘列,使用crc32(xx)作爲新的索引列

 

4.  聯合索引 

1) 聯合索引的使用,是從左側字段開始

2) [A,B] 只有當A字段使用等值匹配時,B字段索引查詢纔會生效

3) [A,B] 單獨使用B字段不會走索引

 

5. 給每個列都建立索引 是錯誤的做法

索引本身是有維護成本的

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章