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

相关推荐
Linux-lucky4 小时前
21-Linux学习之旅之HTTPS和安全加固
linux·运维·学习·ubuntu·https
清水白石0085 小时前
Python 死锁排查全攻略:从线程卡死到锁依赖定位与工程化修复
linux·网络·python
ao-weilai6 小时前
Linux基础:Ext系列文件系统
linux·运维·服务器
qq_349447957 小时前
Linux系统,安装git,从使用git下载仓库(GitHub, Gitee, GitLab 等),并且使用ssh密钥,可以直接执行git pull
linux·git·ssh
GlobalSign数字证书9 小时前
小企业零运维 TLS 架构设计:证书生命周期管理(CLM)与自动化轮换策略的技术选型
运维·自动化
mCell10 小时前
GitHub Actions 玩法大赏:一台远程主机的七种活法
linux·github·agent
盐焗鹌鹑蛋10 小时前
【Linux】动静态库的制作与使用
linux
艾伦_耶格宇11 小时前
【ELK】-4 logstash的搭建及操作
linux·运维·ubuntu·elk
mifengxing12 小时前
文件逻辑结构、物理结构与磁盘空闲存储空间管理
大数据·linux·运维·操作系统·计算机408