sql执行慢
有些一句简单的sql看起来平平无奇,但是却执行很慢,一般存在这么几种可能性:
大多数情况下还可以,只是偶尔出现慢的情况
在数据量不变的情况下,这条sql语句一直执行很慢
整个sql运行慢
定位
针对sql运行慢,我们要做的首先就是定位出这些sql,然后再看这些sql是否正确创建并使用索引
慢查询分析
Mysql中自带了慢查询日志的功能,使用show variables like '%slow_query_log%'
来查询慢查询日志是否开启
如下图所示:
![20eada76e047ace09e0a641a79007620.png](https://i-blog.csdnimg.cn/blog_migrate/6d47cee4e06b83079e88df8fcd38e580.png)
开启慢查询日志
临时开启
代码:set global slow_query_log=1
![fbf0680442b947c5d2bd4e3afed16ead.png](https://i-blog.csdnimg.cn/blog_migrate/347701fc48c4dce8392be0544f5db931.png)
这种设置方式,只对当前数据库生效,如果Mysql重启也会失效
永久开启
如果要永远生效,就必须修改Mysql的配置文件my.cnf,配置如下
slow_query_log =1 slow_query_log_file=/tmp/mysql_slow.log
分析sql运行情况
使用explain 分析你SQL的计划,如下图所示:
explain结果是基于数据库表中现有数据的