MySQL教程之SQL语句分析查询优化

如何获取有性能问题的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


转载请注明:http://www.aierlanlan.com/rzgz/1647.html