数据库原理与应用 第 10 章 · 第六节
课程 › 第 10 章 › 第六节 慢查询日志通用查询日志小结 版式
第 10 章 数据库备份还原和日志管理 · 第六节

慢查询日志与通用日志

慢查询日志和通用查询日志的开启、查看和新建,本章小结
本 节 知 识 点
  1. 22慢查询日志
  2. 23通用查询日志
  3. 24本章小结
22
第 10 章 · 第六节 · 课件第 45、46、47、48 页合并重做

慢查询日志

记录执行时间超过 long_query_time 的查询。

10.6 MySQL 日志管理课件第 45、46、47、48 页合并

慢查询日志

开启
SET GLOBAL slow_query_log = ON;
SET GLOBAL long_query_time = 2;
SET SESSION long_query_time = 2;
  • long_query_time 默认 10 秒
  • SET GLOBAL 对以后新建的连接有效,当前连接要用 SET SESSION 再设一次
  • 要长期有效,在 my.ini 中写 slow_query_log=1 和 long_query_time=2
查看
SHOW VARIABLES LIKE 'slow_query%';
SHOW VARIABLES LIKE 'long_query_time';
  • 文件默认是数据目录中的 主机名-slow.log,文本文件
  • 每条记录中的 Query_time 是执行时间
新建日志文件
  • 先把旧文件改名或删除,再执行 flush-logs
  • slow_query_log 设为 OFF 再设为 ON,不会新建文件
慢查询的时间限制是 long_query_time。slow_launch_time 是创建线程的时间限制,与慢查询无关。

试一试时间限制改了,哪些查询会被记下

long_query_time
查询执行时间记入慢查询日志

知道更多默认是否打开

服务器默认关闭慢查询日志。用 MySQL Installer 安装时默认勾选了它,所以可能已经打开。

实 验

实验 4-1 查看两种日志的设置

实 验

实验 4-2 记录慢查询

23
第 10 章 · 第六节 · 课件第 49、50、51 页合并重做

通用查询日志

记录客户端执行的全部语句,默认关闭。

10.6 MySQL 日志管理课件第 49、50、51 页合并

通用查询日志

开启和查看
SET GLOBAL general_log = ON;
SHOW VARIABLES LIKE 'general%';
  • 要长期有效,在 my.ini 中写 general_log=1 和 general_log_file=文件名
  • 文件默认是数据目录中的 主机名.log,文本文件
  • 每行一条记录:时间、连接号、命令类型、语句
写到表中查看
SET GLOBAL log_output = 'FILE,TABLE';
SELECT event_time,
  CONVERT(argument USING utf8mb4)
FROM mysql.general_log;
  • log_output 含 TABLE 时,通用日志和慢查询日志写到 mysql.general_log、mysql.slow_log 表中,在 Workbench 中就能查询
新建日志文件
  • 与慢查询日志相同:先把旧文件改名或删除,再执行 flush-logs。这条命令对四种日志都起作用
执行 flush-logs 后,通用日志接着写在原来的文件中,既不覆盖也不新建。

分清楚

日志记不记 SELECT
二进制日志不记
通用查询日志记

重 点

通用查询日志连 SELECT 都记,写入量大,一般不长期打开。

实 验

实验 4-3 记录全部语句

实 验

实验 4-4 换新日志并恢复设置

24
第 10 章 · 第六节 · 课件第 52 页

本章小结

备份还原是一条线,四种日志是另一条线。

课件第 52 页

重 点

完整备份加上二进制日志,才能把数据还原到出错之前的任意时刻。

保山学院·人工智能教研室·曹鼎鼎