我正在尝试创建valgrind
MySQL 客户端连接的 (cachegrind) 分析。
我正在valgrind
运行--trace-children=yes
。
我要查找的是内部方法调用之一,在使用时查看调用图...
运行后,valgrind
--trace-children=yes ./bin/mysqld_safe
我得到了当时编写的许多转储文件。
我正在等待 5 分钟(让我希望创建的新文件具有不同的“最后修改”日期。
在这 5 分钟之后,我打开了 30 个会话,并用小事务淹没了系统,当我完成后 - 关闭 MySQL。
现在的问题:
1.运行30个事务并关闭系统后,只修改了3个文件。我预计会看到 30 个文件,因为我虽然 MySQL 跨越进程。所以首先 - 有人可以确认 MySQL 跨越线程而不是每个会话的进程吗?
我看到三个不同的数据库日志调用:一个到 DUMMY,一个到
binlog
,一个到innodb
日志。有人可以解释为什么 thebinlog
和 DUMMY 在那里,它们之间有什么区别?(我猜 DUMMY 是因为,但如果我的第一个猜测是真的innodb
,我不明白为什么存在)。binlog
有没有更好的方法来做这个分析?
有没有这样的工具kcachegrind
可以打开多个文件并显示所有文件的摘要?(或者有可能以某种方式在内部kcachegrind
?)
谢谢!!
顺便说一句 - 对于扩展和开发 MySQL 的人来说 - 那里有很多有趣的事情可以改进......