教你如何使用mysql慢查询日志
发布时间:2023-10-11 15:29:31 所属栏目:MySql教程 来源:
导读:mysql慢查询日志是mysql提供的一种日志记录,它用来记录sql执行超过long_query_time秒的SQL语句。long_query_time的最小值和默认值分别为0和10。 意思是运行超过10秒以上的sql语句。该值可以指定为微秒。 对于记录到
mysql慢查询日志是mysql提供的一种日志记录,它用来记录sql执行超过long_query_time秒的SQL语句。long_query_time的最小值和默认值分别为0和10。 意思是运行超过10秒以上的sql语句。该值可以指定为微秒。 对于记录到文件,写入时间包括微秒部分。 为了记录到表格,只写入整数次。 微秒的部分被忽略。默认情况下,慢查询日志是被禁用的,要自己手动开启。 相关参数 slow_query_log [= {0 | 1}]:是否开启慢查询日志,0为关闭,1为开启。 long_query_time:慢查询阈值,当查询时间多于设定的阈值时,记录日志。 slow_query_log_file:提定日志目标。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log log-output[={FILE|TABLE}]:指定日志存到文件,还是表格。 log_queries_not_using_indexes:未使用索引的查询也被记录到慢查询日志中(可选项)。 log-slow-admin-statements:在写入慢查询日志的语句中包含慢管理语句(可选项)。 min_examined_row_limit:检查少于此行数的查询不会记录到慢速查询日志中。 慢查询配置 mysql> show variables like '%slow_query_log%'; +---------------------+----------------------------------------+ | Variable_name | Value | +---------------------+----------------------------------------+ | slow_query_log | ON | | slow_query_log_file | /usr/local/mysql/var/huosuSDK-slow.log | +---------------------+----------------------------------------+ 2 rows in set (0.00 sec) slow_query_log的值为OFF表示慢查询禁用,ON表示慢查询开启。 set global slow_query_log=1 全局开启慢查询,但mysql如果重启,为失效。如果要永久生效,得在/ect/my.cnf下配置 log-output=FILE 保存文件 slow_query_log=1 开启慢查询 long_query_time=2 时间2秒 log_queries_not_using_indexes=1 没有索引的也记录 然后重启mysql。 如果你想查询有多少条慢查询记录,可以使用系统变量。 show global status like '%Slow_queries%'; 也可以用工具官方提供的工具来分析慢查询 mysqldumpslow mysqldumpslow解析MySQL慢查询日志文件并打印其内容摘要。 通常情况下,mysqldumpslow组查询除了数字和字符串数据值的特定值之外是相似的。 显示汇总输出时,将这些值“提取”为N和“S”。 -a和-n选项可用于修改值抽象行为。 像这样调用mysqldumpslow: shell> mysqldumpslow [options] [log_file ...] mysqldumpslow支持以下选项。 Format Description -a 不要把所有的数字都抽象成N和字符串S -n 至少指定数字的抽象数字 --debug 编写调试信息 -g 只考虑符合模式的语句 --help 显示帮助信息并退出 -h 日志文件名中的云服务器的主机名 -i 云服务器实例的名称 -l 不要从总时间中减去锁定时间 -r 颠倒排序顺序 -s 如何排序输出 -t 仅显示第一个数字查询 --verbose 详细模式 --help 显示帮助信息并退出 -a 不要把所有的数字都抽象成N和字符串S --debug, -d 编写调试信息 -g pattern 只考虑匹配(grep-style)模式的查询。 -h host_name MySQL云服务器的主机名为 -slow.log文件名。 该值可以包含通配符。 默认值是(全部匹配)。 -i name 云服务器实例的名称(如果使用mysql.server启动脚本)。 -l 不要从总时间中减去锁定时间。 -n N 抽象号码中至少有N位数字。 -r 颠倒排序顺序。 -s sort_type 如何排序输出。 sort_type的值应该从以下列表中选择: t, at: 按查询时间或平均查询时间排序 l, al: 按锁定时间或平均锁定时间排序 r, ar: 按发送的行或发送的平均行进行排序 c: 按数量排序 默认情况下,mysqldumpslow按平均查询时间排序(相当于-s at)。 -t N 只显示输出中的前N个查询。 --verbose, -v (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐