MySQL索引选择规则参考

MySQL索引选择规则参考
参考一、选择合适的索引列:
1、查询频繁的列,在where,group by,order by,on从句中出现的列
2、where条件中<,<=,=,>,>=,between,in,以及like 字符串+通配符(%)出现的列
3、长度小的列,索引字段越小越好,因为数据库的存储单位是页,一页中能存下的数据越多越好
4、离散度大(不同的值多)的列,放在联合索引前面。查看离散度,通过统计不同的列值来实现,count越大,离散程度越高。

参考二、以下是整理出来的规则:
(由于很多实际项目都是查询操作占了绝大部分,因此不必太过呆板)
1、选择维度高的列
2、选择 where,on,group by,order by 中出现的列
3、选择较小的数据列,这样的索引文件更小,同时可装载更多的索引键
4、为较长的字符串使用前缀索引
5、组合索引能减低索引文件的大小,使用速度也优于多个单列索引
6、切勿滥用索引,因为除了磁盘空间的开销外,每次增删改都需要重新建立索引
7、索引不会包含有NULL值的列(若组合索引包含NULL值的列则整个组合索引无效)
另外,使用索引应当尽量避免 “OR” 、“否定查询” 、“模糊查询”、“NOT IN”、“<>” 等操作!
注意:前缀索引和组合索引是建立索引的一种技巧,并非索引类型。

(转载)


10