sql的慢日志如何查看

文章介绍了如何检查和开启MySQL的慢查询日志,包括设置`slow_query_log`为1以启用日志,以及开启`log_queries_not_using_indexes`以记录未使用索引的查询。同时,讨论了确定慢查询时间阈值的`long_query_time`参数,该参数以秒为单位定义何时记录SQL查询。

 

查看mysql日志是否开启

show VARIABLES LIKE 'slow_query_log'

打开日志开关,默认是关闭的,1是开启,0是关闭

set global slow_query_log = 1;

查看是否会因为没用到索引而记录到日志中,

show variables like '%log_queries_not_using_indexes%'

打开没用到索引就记录到日志的开关,默认是关闭的,1是开启,0是关闭

set global log_queries_not_using_indexes= 1;

查看什么的(花了多长时间的sql才叫慢)慢查询sql才记录到日志中

show  variables like 'long_query_time'(查询得出来的时间是秒为单位)

### 如何查看和分析SQL查询日志 #### 查看SQL查询日志 可以通过以下方式查看MySQL查询日志文件: 1. **确认查询日志是否开启** 使用以下命令检查查询日志是否已启用以及其位置: ```sql SHOW VARIABLES LIKE 'slow_query_log'; SHOW VARIABLES LIKE 'slow_query_log_file'; ``` 如果 `slow_query_log` 的值为 `ON`,则表示查询日志已开启。同时,`slow_query_log_file` 将显示查询日志文件的路径[^3]。 2. **直接读取查询日志文件** 查询日志通常以文本形式存储,可以直接通过文本编辑器或命令行工具查看。例如: ```bash cat /var/lib/mysql/atguigu05-slow.log ``` 或者使用 `tail` 命令查看最近的记录: ```bash tail -n 100 /var/lib/mysql/atguigu05-slow.log ``` 3. **调整时间阈值** 可以通过设置 `long_query_time` 来定义查询的时间阈值(默认为10秒)。例如,将阈值设置为2秒: ```sql SET GLOBAL long_query_time = 2; ``` 这样,执行时间超过2秒的SQL语句会被记录到查询日志中[^3]。 #### 分析SQL查询日志 分析查询日志可以使用以下方法: 1. **手动分析** 打开查询日志文件后,可以逐条分析其中的SQL语句。每条记录通常包含以下信息: - 查询执行时间 - 返回的行数 - SQL语句本身 2. **使用工具分析** - **mysqldumpslow** MySQL自带的工具 `mysqldumpslow` 可以汇总和统计查询日志中的数据。例如: ```bash mysqldumpslow -t 10 /var/lib/mysql/atguigu05-slow.log ``` 上述命令将显示前10条最耗时的SQL语句[^4]。 - **mysqlsla** `mysqlsla` 是一个更强大的第三方工具,能够提供更详细的统计信息。安装后,可以运行以下命令: ```bash mysqlsla -lt slow-query-log /var/lib/mysql/atguigu05-slow.log ``` 3. **优化SQL语句** 针对查询日志中的SQL语句,可以使用 `EXPLAIN` 分析其执行计划,并根据结果进行优化。例如: ```sql EXPLAIN SELECT * FROM users WHERE name = 'John'; ``` 如果发现没有使用索引,则可以考虑为相关字段添加索引[^2]。 ```python # 示例代码:模拟通过Python读取并解析查询日志 with open('/var/lib/mysql/atguigu05-slow.log', 'r') as file: for line in file: if "Query_time" in line: print(line.strip()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值