索引設計的一些原則
阿新 • • 發佈:2019-02-14
1.分割槽表不要建立全域性索引
分割槽表一般建立本地索引(使用local關鍵字)。刪除分割槽時全域性索引失效。
2.不要建立無用索引
會降低DML語句的效能。
3.不要建立同樣功能的索引
比如:如果已經建立了(colName1,colName2)索引,那麼沒必要再建立index1索引
4.索引的key不宜過長
key過長會導致索引樹高度很大,效率降低。
組合索引的列不宜過多。
5.組合索引要把高選擇度的列放在前面
6.當需要對大資料量資料有序返回時,可以通過建立索引來避免大量排序
如需按colName1排序,那麼建立colName1的索引;
如要返回在colName1="xxx"的資料並且按照colName2排序,那麼建立(colName1,colName2)組合索引
7.一般不再選擇率低的列上建立索引
8.如果需要對查詢列上採用函式查詢,那麼建立函式索引。
MySQL不支援函式索引。括弧,MySQL也不支援採用“暗示”來選擇特定索引型別~~~
9.索引和表一般要建立在不同的表空間中,以提高IO效能。
10.因為索引不會在空值上生效,所以如果某列有空值且希望建立索引,那麼可以考慮建立組合索引(colName, 1)