定位执行效率慢的sql语句
1.命令:
show status like 'Com__'
通过该命令可以知道当前数据库是以查询为主还是更新为主。如果是查询为主,就重点查询,如果增删改多就优化写入操作。
2.
explain+sql语句
查询sql语句的执行过程,通过分析过程,我们可以得到的信息如下:
- 哪些步骤话费的成本比较高。
- 哪些步骤产生的数据量多(数据量的多少用线条表示,比较直观)。
- 这条sql语句是否走索引。
3.show profile分析SQL
可以查看所有sql语句的执行效率(所用时间),前提是这个命令需要被打开。打开这个命令之后执行的所有的sql语句,他都能记录下执行时间,并展示出来。
可以通过这个命令分析哪些命令执行效率低、耗时长,就去针对性的优化这条sql语句。
4.慢查询日志(比较常用的工具)
慢查询日志记录了所有执行时间超过long_query_time的sql语句的日志,long_query_time的值默认是10秒(可以通过修改配置文件设置)。
日志保存在 /var/lib/mysql/目录下, 名字是slow_query.log。