# 慢查询日志

URL: https://caijiao.org/mariadb/admin/logs/slow
Source: docs/mariadb/admin/logs/slow.md
Description: 本节介绍 MariaDB 慢查询日志的配置与使用方法，通过记录执行时间较长的 SQL 语句，帮助定位性能瓶颈，优化数据库查询效率。

## 1. 什么是慢查询日志

慢查询日志用于记录执行时间超过指定阈值的 SQL 语句，帮助开发和运维人员分析和优化数据库性能，提升响应速度。

## 2. 启用慢查询日志

编辑 MariaDB 配置文件（通常为 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`），添加或修改以下参数：

```ini
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/log/mysql/mariadb-slow.log
long_query_time = 2
log_queries_not_using_indexes = ON
````

参数说明：

* `slow_query_log`：启用慢查询日志。
* `slow_query_log_file`：慢查询日志文件路径。
* `long_query_time`：定义超过多少秒的查询被记录，单位为秒。
* `log_queries_not_using_indexes`：记录未使用索引的查询。

## 3. 重启 MariaDB 服务

保存配置后，重启 MariaDB 使配置生效：

```bash
systemctl restart mariadb
```

## 4. 查看慢查询日志

可以使用 `tail` 命令实时查看慢查询日志：

```bash
tail -f /var/log/mysql/mariadb-slow.log
```

也可以使用 `mysqldumpslow` 工具对日志进行汇总分析：

```bash
mysqldumpslow /var/log/mysql/mariadb-slow.log
```

## 5. 优化建议

* 根据慢查询日志定位长时间执行的 SQL，检查是否缺少索引或查询不合理。
* 优化 SQL 语句结构，合理使用索引。
* 定期监控慢查询日志，持续提升数据库性能。

---

通过启用和分析慢查询日志，能够有效发现性能瓶颈，是数据库性能优化的重要手段。
