MySQL的通用查询日志

MySQL的通用查询日志,第1张

查询日志记录 MySQL 中所有的 query,通过“—log[=fina_name]”来打开该功能。由

于记录了所有的 query,包括所有的 select,体积比较大,开启后对性能也有较大的影响, 所以请大家慎用该功能。 一般只用于跟踪某些特殊的sql 性能问题才会短暂打开该功能。默认的查询日志文件名为 hostname.log。

慢查询日志

顾名思义,慢查询日志中记录的是执行时间较长的 query,也就是我们常说的 slow

query,通过设 —log-slow-queries[=file_name]来打开该功能并设置记录位置和文件名, 默认文件名为 hostname-slow.log,默认目录也是数据目录。

慢查询日志采用的'是简单的文本格式, 可以通过各种文本编辑器查看其中的内容。中其 记录了语句执行的时刻,执行所消耗的时间,执行用户,连接主机等相关信息。MySQL 还提 供了专门用来分析满查询日志的工具程序mysqlslowdump, 用来帮助数据库管理人员解决可 能存在的性能问题。

在日常开发当中,经常会遇到页面打开速度极慢的情况,通过排除,确定了,是数据库的影响,为了迅速查找具体的SQL,可以通过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执行记录

set global log=OFF

set global log_slow_queries=OFF

-- long_query_time参数说明

-- v4.0, 4.1, 5.0, v5.1 到 5.1.20(包括):不支持毫秒级别的慢查询分析(支持精度为1-10秒)

-- 5.1.21及以后版本 :支持毫秒级别的慢查询分析, 如0.1

-- 6.0 到 6.0.3: 不支持毫秒级别的慢查询分析(支持精度为1-10秒)

-- 6.0.4及以后:支持毫秒级别的慢查询分析

这是一个慢查询日志的展示工具,能够帮助 DBA 或者开发人员分析数据库的性能问题,给出全面的数据摆脱直接查看 slow-log。QAN(Query Analytics)

PMM 目前有 2 个版本,但是对于 QAN 来说其大致由三部分组成:

QAN-Agent(client):负责采集 slow-log 的数据并上报到服务端

QAN-API(server):负责存储采集的数据,并对外提供查询接口

QAN-APP:专门用来展示慢查询数据的 grafana 第三方插件

1. 数据流转

slow-log -->QAN-Agent -->QAN-API <-->QAN-APP(grafana)

2. pmm1 架构图

3. pmm2 架构图


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7462026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存