【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)相关实验。

相关推荐
A15362551 小时前
五金批发电商业财一体化 ERP 推荐:打通订单、库存、财务对账
大数据·运维·人工智能·零售
邪修king2 小时前
Re:Linux系统篇(四):权限Chapter--用户身份、权限位与目录权限三大核心问题
linux·运维·服务器
张忠琳2 小时前
【NVIDIA】k8s-device-plugin v0.19.3 — CDI / MIG / vGPU 模块超深度代码分析之五
云原生·容器·架构·kubernetes·nvidia
砍材农夫2 小时前
运维|devops|jenkins构建分支选择及执行日志展示
运维·jenkins·devops
buhuizhiyuci2 小时前
【Linux 篇】数字世界的通信管道 —— 匿名管道与进程池深度实战解析
linux·运维·服务器
十六年开源服务商2 小时前
WordPress邮件日志记录定制开发指南2026
运维·开源
无锡耐特森3 小时前
ModbusTCP转Profinet:打通潜油电泵工业互联新路径
linux·运维·服务器
snow@li3 小时前
命名规范:企业级微服务模块前缀命名规范全景梳理
微服务·云原生·架构
晨陌y3 小时前
多台服务器怎么统一监控?哪吒面板部署、钉钉告警与远程访问教程
运维·服务器·钉钉