慢查询
造成慢查询的原因
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
索引失效条件:
- 有or必全有索引; 要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引
- 复合索引未用左列字段;对于多列索引,前一部分没有使用索引.则后面没法使用索引
- like以%开头;
- 需要类型转换;字符串类型没有加双引号会使得索引失效
- where中索引列有运算;+1,-1
- where中索引列使用了函数;sum(),avg()等
- 如果mysql觉得全表扫描更快时(数据少);
此外,查看索引的使用情况
show status like ‘Handler_read%’;
大家可以注意:
handler_read_key:这个值越高越好,越高表示使用索引查询到的次数
大家可以注意:
handler_read_key:这个值越高越好,越高表示使用索引查询到的次数
handler_read_rnd_next:这个值越高,说明查询低效
定位慢查询的两种方法
1.使用explain等工具分析sql
2.慢查询日志操作
查看慢日志是否开启ON为开启,OFF为关闭
show variables like 'slow_query%';
开启慢日志查询
set global slow_query_log='ON';
https://www.cnblogs.com/liehen2046/p/11052666.html 参考实际案例和截图

浙公网安备 33010602011771号