【MySQL】练习5-1:配置慢查询日志

一、实验内容

导入员工示例测试数据库,手动开启MySQL慢查询日志;分别将慢查询日志输出到日志文件、系统数据表两种模式,执行耗时较长的SQL语句,观察慢查询日志记录效果,掌握慢查询日志配置与查看方法。

二、实验步骤

1. 执行sql脚本,导入employees员工示例数据库

bash 复制代码
cd /stage/databases/employees_db
mysql -uroot -p < employees.sql

输入MySQL root密码,脚本自动创建库、导入部门、员工、薪资等所有测试表数据。

2. 登录MySQL交互式客户端

bash 复制代码
mysql -uroot -p

输入密码,进入mysql命令行交互会话。

3. 全局配置慢查询日志文件名

sql 复制代码
SET GLOBAL slow_query_log_file='slow-query.log';

4. 设置慢查询判定阈值:执行超过0.2秒的SQL均会被记录

sql 复制代码
SET SESSION long_query_time=0.2;

5. 开启慢查询日志总开关

sql 复制代码
SET GLOBAL slow_query_log=ON;

6. 切换至employees库,执行耗时查询语句

sql 复制代码
USE employees;

SELECT emp_no, salary FROM salaries 
WHERE from_date BETWEEN '1986-01-01' AND '1986-01-07'
ORDER BY from_date, salary;

执行完毕查看语句耗时,该SQL执行时长超过0.2秒,会被慢日志捕获。

7. 在mysql终端调用系统命令,查看日志文件内容

sql 复制代码
\! cat /var/lib/mysql/slow-query.log

可看到刚才执行的查询语句、执行时间、扫描行数等日志详情。

8. 查询系统自带慢日志数据表(初始为空)

sql 复制代码
SELECT * FROM mysql.slow_log;

此时日志输出目标为文件,数据表内无记录。

9. 修改日志输出模式:日志写入mysql.slow_log系统表,不再写入文件

sql 复制代码
SET GLOBAL log_output='TABLE';

10. 再次重复执行第6步的慢SQL语句

sql 复制代码
SELECT emp_no, salary FROM salaries 
WHERE from_date BETWEEN '1986-01-01' AND '1986-01-07'
ORDER BY from_date, salary;

11. 重新查询慢日志数据表,验证数据已入库

sql 复制代码
SELECT * FROM mysql.slow_log;

数据表中出现本次SQL的完整执行日志信息。

12. 保持当前mysql客户端会话不要关闭

留存会话,方便接续完成下一节练习5-2:性能模式(Performance Schema)相关实验。

相关推荐
梅梅绵绵冰1 分钟前
Nginx反向代理
运维·nginx
Python自动化直播4 分钟前
自动化笔记:素材管理、命名、轮换的几条土办法
linux·运维·数据库
西安同步电子20 分钟前
卫星信号丢失怎么办?NTP 网络校时服务器的守时能力
运维·服务器·网络
FlightYe27 分钟前
音视频修炼之容器与协议(一):MP4和MOV的box剖析
android·linux·c++·ffmpeg·音视频
海宇服务39 分钟前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化电商大促营销补贴风控网关
运维·人工智能·架构·自动化
暴雨课堂43 分钟前
tp5 tp6被攻击篡改后恢复
linux·服务器·php
djjjx.1 小时前
Linux进程篇(四):内核托底与生死交错 ,深度硬核剖析“僵尸”与“孤儿”进程
linux·运维·服务器
m0_646429971 小时前
VS Code Remote SSH 使用 Codex:通过 SSH 转发本地代理
运维·ssh
为思念酝酿的痛1 小时前
Reactor反应堆模式
linux·服务器·网络
沫璃染墨1 小时前
从零入门计算机网络系列(六):TCP套接字编程实战——从listen监听到客户端与服务器通信
linux·服务器·c++·tcp/ip·计算机网络·tcp