索引虽好,但也不能无限制的使用,最好符合以下几个原则
1、 最左前缀匹配原则,组合索引非常重要的原则,MySQL会一直向右匹配直到遇到范围查询(>、<、between, like)就停止匹配,比如 a = 1 and b = 2 and c > 3 and d = 4 如果建立(a, b, c, d)顺序的索引,d是用不到索引的,如果建立(a, b, d, c)的索引则都可以用到,a, b, d的顺序可以任意调整。
2、 较频繁作为查询条件的字段才去创建索引
3、 更新频繁字段不适合创建索引
4、 若是不能有效区分数据的列不适合做索引列(如性别,男女未知,最多也就三种,区分度实在太低)
5、 尽量的扩展索引,不要新建索引。比如表中已经有a的索引,现在要加(a, b)的索引,那么只需要修改原来的索引即可
6、 定义有外键的数据列一定要建立索引
7、 对于那些查询中很少涉及的列,重复值比较多的列不要建立索引
8、 对于定义为text、image和bit的数据类型的列不要建立索引
Was this helpful?
0 / 0