如何获取有性能问题的SQL
1、通过用户反馈获取存在性能问题的SQL
2、通过慢查询日志获取性能问题的SQL
3、实时获取存在性能问题的SQL
使用慢查询日志获取有性能问题的SQL
首先介绍下慢查询相关的参数
1、slow_query_log启动定制记录慢查询日志
设置的方法,可以通过MySQL命令行设置setglobalslow_query_log=on
或者修改/etc/my.cnf文件,添加slow_query_log=on
2、slow_query_log_file指定慢查询日志的存储路径及文件
建议日志存储和数据存储分开存储
3、long_query_time指定记录慢查询日志SQL执行时间的阈值
①记录所有符合条件的SQL
②数据修改语句
③包括查询语句
④已经回滚的SQL
注意:
时间可以精确到微秒,存储的单位是秒,默认值为10秒,例如我们想查询1微秒的值,这里就要设置成0.秒
4、log_queries_not_using_indexes是否记录未使用索引的SQL
5、log_output设置慢日志查询的保存格式(如果需要保存为文件请修改成FILE)
慢查询使用日志中记录的信息
1、第一行记录的信息为使用sbtest做的测试
2、第二行记录的信息为慢查询日志的时间
3、第三行记录的信息为所使用锁的时间
4、第四行记录的信息为返回的数据行数
5、第五行记录的信息为扫描数据的行数
6、第六行记录的信息为时间戳
7、第七行记录的信息为查询的SQL语句
使用慢查询获取有性能问题的SQL
常使用的慢查询日志分析工具(mysqldumpslow)
介绍:汇总除查询条件外其他完全相同的SQL,并将分析结果按照参数中所指定的顺序输出
慢查询日志实例
慢查询的相关配置设置
命令行执行参数查看分析的结果
]#cd/var/lib/mysql/log]#mysqldumpslow-sr-t10slow-mysql
常使用的慢查询日志分析工具(pt-query-digest)
使用工具前,需要先安装该工具,如果已有,可略过下面的安装步骤
1、perl模块
]#yuminstall-yperl-CPANperl-Time-HiResperl-IO-Socket-SSLperl-DBD-mysqlperl-Digest-MD5
2、切换至src目录下载rpm包
]#cd/usr/local/src
]#wget