MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选( 四 )


文章插图

  • 6、 查看join操作时全表扫描的次数:show global status like 'select_full_join',如图所示,该值一般可以表示SQL语句中的join操作没有走索引的次数,如果值非常大,那可能是SQL语句中的join操作存在性能问题 。

MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
  • 7、 查看SQL中排序使用情况:show global status like 'sort%',如图所示

MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
  • 8、 查看SQL查询缓存的命中情况:show global status like 'qcache%',如图所示 。

MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
如果需要查询数据库查询缓存的设置,可以通过show variables like 'query_cache%'进行查看,如图所示 。
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
备注:MySQL数据库中大部分的运行状态都可以通过show status和show global status来查看,二者的区别在于前者是查询当前的运行状态,后者是查询全局的运行状态,也就是数据库开始启动运行到现在为止的状态 。
2、MySQL数据库的性能定位
2.1、慢SQL
慢SQL 一般指查询很慢的SQL语句,在MySQL数据库中,可以通过慢查询来查看所有执行超时的SQL语句,在默认情况下,一般慢SQL 是关闭的,可以通过执行show variables like 'slow_query%'来查看数据库是否开启了慢查询,如图所示 。
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
从图中看到slow_query_log的值为OFF表示未开启,可以通过执行 set global slow_query_log=1; 或者 set global slow_query_log=ON;来临时开启慢查询,如图所示 。
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
如果需要永久开启,需要修改/etc/my.cnf配置文件,在[mysqld]处加入如下配置,然后重启数据库即可生效,如图所示 。
slow_query_log=ON
slow_query_log_file=/var/lib/mysql/localhost-slow.log
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
修改完成重启数据库后,再次执行show variables like 'slow_query%',发现慢查询已经被开启,如图所示 。
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
通过执行show variables like 'long_query%';可以查询慢查询的记录时间,如图所示,默认是10秒,可以通过执行set long_query_time=需要修改的时长;来修改慢查询的记录时间 。
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
通过执行show status like 'slow_queries';可以查看慢查询发生的次数,如图所示 。
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
从慢查询日志中,我们也可以看到慢查询发生的详细信息,如图所示,慢查询日志中会记录每次慢查询发生的时间、执行查询时的数据库用户、线程id、查询执行的SQL语句等信息 。
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
本文作者:张永清, 转载请注明: https://www.cnblogs.com/laoqing/p/16880718.html  来源于博客园 ,本文摘选自《软件性能测试分析与调优实践之路》
MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

文章插图
在获取到慢查询的SQL语句后,就可以借助数据库的执行计划来对慢查询的SQL语句做进一步分析了 。
 2.2、执行计划
在MySQL中使用explain关键字可以模拟查看数据库是如何来执行SQL查询语句,也就是常说的查看一条SQL语句在数据库中的执行计划,如图6-2-8所示就是执行EXPLAIN

经验总结扩展阅读