mysql慢查询如何自动捕获_配置slow_query_log与慢查询分析工具

MySQL慢查询日志需动态开启(SET GLOBAL slow_query_log = ON)并设long_query_time(如1.0秒),指定slow_query_log_file路径,且默认不记录UPDATE/DELETE;解析推荐pt-query-digest而非mysqldumpslow;日志轮转须先关闭再重命名或用FLUSH SLOW LOGS。slow_query_log 怎么打开才真正生效MySQL 的慢查询日志默认是关闭的,光改配置文件不重启或不动态启用,slow_query_log 就只是个摆设。很多线上环境配了但查不到慢 SQL,根本原因是没确认它是否真在写入。动态开启(无需重启):SET GLOBAL slow_query_log = ON;,但要注意:该命令只对新连接生效,当前会话不会记录自己执行的语句必须同时设置 long_query_time,例如 SET GLOBAL long_query_time = 1.0;(单位秒,支持小数),否则默认是 10 秒,大部分"慢"都漏掉了日志路径由 slow_query_log_file 控制,建议显式指定绝对路径(如 /var/log/mysql/mysql-slow.log),避免 MySQL 自行拼接出错或权限不足检查是否生效最直接的方式:SHOW VARIABLES LIKE 'slow_query_log%'; 和 SHOW VARIABLES LIKE 'long_query_time';为什么开了 slow_query_log 却没记录 UPDATE/DELETE默认情况下,MySQL 只记录 SELECT 语句到慢查询日志,UPDATE、DELETE、INSERT 等写操作不会被收录------这是很多人排查 DML 性能问题时踩的第一个坑。要捕获所有慢语句,必须开启 log_queries_not_using_indexes 并配合 min_examined_row_limit,但这俩不是为 DML 设计的,仍不可靠真正可行的办法是启用 general_log + 过滤,但开销大,仅限临时诊断;生产环境更推荐用 performance_schema.events_statements_summary_by_digest 查聚合后的慢执行摘要如果非要用慢日志抓写操作,5.7+ 可设置 log_output = 'TABLE' 并查 mysql.slow_log 表,但注意该表默认是 CSV 引擎,插入性能差,且不自动清理mysqldumpslow 解析慢日志总报错或结果不准mysqldumpslow 是 MySQL 自带的分析工具,但对现代慢日志格式兼容性差,尤其遇到带毫秒精度的 long_query_time(如 0.1)、带注释的 SQL 或多行语句时,解析极易出错或合并失败。 Ideogram Ideogram是一个全新的文本转图像AI绘画生成平台,擅长于生成带有文本的图像,如LOGO上的字母、数字等。

相关推荐
充钱大佬3 小时前
Python测试基础教程
python·log4j·apache
小二·5 小时前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手5 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful
吴声子夜歌5 小时前
Redis 5.x——布隆过滤器
数据库·redis·缓存
初心丨哈士奇5 小时前
Python 四大基础容器|列表篇
python
蓝天下的守望者6 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
明理的信封6 小时前
AI 基础设施的“去 Python 化“:Rust 与 C# 的两条替代路径
人工智能·python·rust
上海云盾-小余6 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
数据库小学妹6 小时前
国家区域医疗中心国产化改造实战:数据库选型、跨院区数据互通与踩坑经验
数据库·国产数据库·数据库选型·医疗信息化·信创数据库·医疗信创