索引设计的一些原则

来源:互联网 发布:导航源码 编辑:程序博客网 时间:2024/05/18 00:51

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)

0 0