1. 程式人生 > >索引設計的一些原則

索引設計的一些原則

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)