对MySQL慢查询日志进行分析的基本教程?
开启慢查询日志
mysql>setglobalslow_query_log=1;
定义时间SQL查询的超时时间
mysql>setgloballong_query_time=0.005;
查看慢查询日志的保存路径
图片来源:网络
mysql>showglobalvariableslike'slow_query_log_file';
查看慢查询
cat/var/log/mysql/slow.log
如何按照时间段打印mysql的慢日志?
在MySQL客户端中输入命令:show variables like '%quer%';其中红框标注的选项是:
-slow_query_log是否记录慢查询。用long_query_time变量的值来确定“慢查询”。-slow_query_log_file慢日志文件路径-long_query_time慢日志执行时长(秒),超过设定的时间才会记日志Linux:在/etc/my.cnf配置文件的[mysqld]选项下增加:
slow_query_log=TRUEslow_query_log_file=/usr/local/mysql/slow_query_log.txtlong_query_time=3Windows:在my.ini配置文件的[mysqld]选项下增加:
slow_query_log=TRUEslow_query_log_file=c:/slow_query_log.txtlong_query_time=3重启MySQL后,可发现已经开启慢查询日志
mysql binlog事务怎么记录?
用来判断binlog中每条记录是在哪个服务器上产生的,在主主复制架构中可以防止无限复制循环。#Enteranamefortheerrorlogfile.Otherwiseadefaultnamewillbeused.log-error=err.log#Enteranameforthequerylogfile.Otherwiseadefaultnamewillbeused.#log=#Enteranamefortheslowquerylogfile.Otherwiseadefaultnamewillbeused.#log-slow-queries=#Enteranamefortheupdatelogfile.Otherwiseadefaultnamewillbeused.#log-update=#Enteranameforthebinarylog.Otherwiseadefaultnamewillbeused.#log-bin=
如何查询mysql的执行记录?
-- 打开sql 执行记录功能set global log_output='TABLE'
; -- 输出到表set global log=ON; -- 打开所有命令执行记录功能general_log, 所有语句: 成功和未成功的.set global log_slow_queries=ON; -- 打开慢查询 sql 记录slow_log, 执行成功的: 慢查询语句和未使用索引的语句set global long_query_time=0.1; -- 慢查询时间限制(秒)set global log_queries_not_using_indexes=ON; -- 记录未使用索引的sql 语句-- 查询sql 执行记录select * from mysql.slow_log order by 1; -- 执行成功的:慢查询语句,和未使用索引的语句select * from mysql.general_log order by 1; -- 所有语句: 成功和未成功的.-- 关闭sql 执行记录