存储在mysql.slow_log里的慢查询分析

水族杰纶 2018-01-24 03:58:56
由于不可抗拒的原因。
mysql的慢查询是存储在表里的。
各位大大 有没有什么工具可以分析存储在表里的慢查询
或者有没有什么工具可以将表里的慢查询转成文件。
看了一下,表里的字段和存储在文件里的慢查询,字段名什么的差异还是比较大的。
直接导出文本走不通。
...全文
524 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
水族杰纶 2018-01-24
  • 打赏
  • 举报
回复
引用 6 楼 zjcxc 的回复:
/*-- 记录到文件的格式
# Time: 2018-01-24T09:03:04.440933Z
# User@Host: dba_jack[dba_jack] @ localhost [::1]  Id:     4
# Query_time: 47.920177  Lock_time: 0.016016 Rows_sent: 1  Rows_examined: 28853938
use db;
SET timestamp=1516784584;
select ;
*/
-- 从表中导出时,通过拼字符串的方式组织各列
SELECT
CONCAT(
'# Time: ',
	DATE_FORMAT(
		start_time - INTERVAL TIMESTAMPDIFF(Minute, UTC_TIMESTAMP(), NOW()) MINUTE,
		'%Y-%m-%dT%h:%i:%s'),
	'.', LPAD(MICROSECOND(start_time), 6, '0'), 'Z\n',
'# User@Host: ', user_host, '  Id: ', lpad(thread_id,5,' '), '\n',
'# Query_time: ',CAST(query_time as decimal(24,6)),
	'  Lock_time: ', CAST(lock_time as decimal(24,6)),
	'  Rows_sent: ', rows_sent,
	'  Rows_examined: ',rows_examined, '\n',
'use ', db, ';\r',
'SET timestamp=', UNIX_TIMESTAMP(start_time), ';\n',
CONVERT(sql_text using utf8), ';'
)
-- INTO OUTFILE '/xx/slow.log' FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n'
FROM mysql.slow_log
感谢老大
zjcxc 2018-01-24
  • 打赏
  • 举报
回复
/*-- 记录到文件的格式
# Time: 2018-01-24T09:03:04.440933Z
# User@Host: dba_jack[dba_jack] @ localhost [::1]  Id:     4
# Query_time: 47.920177  Lock_time: 0.016016 Rows_sent: 1  Rows_examined: 28853938
use db;
SET timestamp=1516784584;
select ;
*/
-- 从表中导出时,通过拼字符串的方式组织各列
SELECT
CONCAT(
'# Time: ',
	DATE_FORMAT(
		start_time - INTERVAL TIMESTAMPDIFF(Minute, UTC_TIMESTAMP(), NOW()) MINUTE,
		'%Y-%m-%dT%h:%i:%s'),
	'.', LPAD(MICROSECOND(start_time), 6, '0'), 'Z\n',
'# User@Host: ', user_host, '  Id: ', lpad(thread_id,5,' '), '\n',
'# Query_time: ',CAST(query_time as decimal(24,6)),
	'  Lock_time: ', CAST(lock_time as decimal(24,6)),
	'  Rows_sent: ', rows_sent,
	'  Rows_examined: ',rows_examined, '\n',
'use ', db, ';\r',
'SET timestamp=', UNIX_TIMESTAMP(start_time), ';\n',
CONVERT(sql_text using utf8), ';'
)
-- INTO OUTFILE '/xx/slow.log' FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n'
FROM mysql.slow_log
吉普赛的歌 2018-01-24
  • 打赏
  • 举报
回复
曲线救国嘛! 先在 SQL Server 里面建一个链接服务器, 在 SQL Server 里, 随便导什么文件都不是问题了。
水族杰纶 2018-01-24
  • 打赏
  • 举报
回复
看来只能这样了。谢谢老大
zjcxc 2018-01-24
  • 打赏
  • 举报
回复
至于结构,你导出的时候按照你自己的需要拼字符串呗
水族杰纶 2018-01-24
  • 打赏
  • 举报
回复
导出是没有问题。但是格式和设置成文件格式的慢查询本身的格式已经完全不一样了。
zjcxc 2018-01-24
  • 打赏
  • 举报
回复
由于不可抗拒的原因 ------------------------------ 好吧,这就是折腾,表里面你可以直接用 SQL 查询统计分析 导出文件可以用 SELECT * INTO OUTFILE 也可以直接把对应的 CSV 文件 COPY 出来,这个表如果你没动过的话, ENGINE 是 CSV 的
通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用的sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log表 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql的执行计划分析-explain分析-执行计划结果说明4、慢sql的执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列表说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace表的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧