1.创建索引条件

1.必须要有主键,建议是自增长的ID列
2.经常作为where条件列 order by    group by   join on    distinct 的条件(业务:产品功能+用户行为)
3.唯一值多的列,作为联合索引的最左列
4.列值较长的索引列,我们建议使用前缀索引
5.降低索引条目,一方面不要创建没用的索引,不常使用的索引清理,percona toolkit (xxxxxx)
6.索引维护要避开业务繁忙期
7.经常更新的列不要建索引。

2.开发规范

1.没有查询条件,或是查询条件没有建立索引。

2.查询结果集是原表中的大部分数据,为原表的20-30% 以上时,索引失效。
解决方案:给范围查询增加上限和下限

3.索引本身失效,统计数据不真实,更新不及时
当统计数据不真实,更新数据不及时时,索引变慢或索引失效。
解决方法:
    1.手动触发更新统计信息
        ANALYZE TABLE city;
        optimize table city;
    2. 重建索引

4. 查询条件使用函数在索引列上,或者对索引列进行运算,运算符包括(+ - * / !),会导致索引失效

5. 隐式转换导致索引失效,这一点应当引起重视,也是开发经常犯的错误。

6.<> , not in  不走索引 (指的是辅助索引)

7.like '%_' 百分号在最前面时,不走索引

8.联合索引

posted on 2019-12-24 10:21  杨港澳  阅读(86)  评论(0)    收藏  举报