Ruc*_*ami 2 mysql performance logs scalability performance-testing
有没有可用的工具可以使用MySQL通用日志创建的日志文件进行压力测试?在谷歌上进行了大量搜索后,我发现很少有压力测试工具只使用一些基准进行压力测试。一种解决方案是使用 Apache JMeter,但它不会从 MySQL 日志文件创建测试计划,并且为我拥有的所有查询创建自定义测试计划太耗时了。
或者是否有至少可以从 MySQL 日志创建 .sql 文件的工具?
这是使用暴力破解 mysql 的更直接方法:将一般设置为 MyISAM 表。安装时,您会发现该表格mysql.general_log
为 CSV 表格。
请阅读我过去的帖子,而不是重新发明轮子并进行大量打字:
Nov 16, 2011
:记录 MySQL 数据库更改查询和用户Feb 11, 2012
: MySQL 一般日志Jan 08, 2012
:如何启用MySQL通用日志?一旦mysql.general_log
转换为 MyISAM 并记录查询,只需像访问任何其他 MyISAM 表一样访问日志。
这是MyISAM版本的结构 mysql.general_log
mysql> show create table mysql.general_log\G
*************************** 1. row ***************************
Table: general_log
Create Table: CREATE TABLE `general_log` (
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`user_host` mediumtext NOT NULL,
`thread_id` int(11) NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL,
KEY `event_time` (`event_time`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
从这里开始,只需编写以查询开头的所有内容:
SQLSTMT="SELECT argument FROM mysql.general_log"
SQLSTMT="${SQLSTMT} WHERE LEFT(argument,6) IN"
SQLSTMT="${SQLSTMT} ('INSERT','UPDATE','DELETE','SELECT')"
mysql -uroot -p -ANe"${SQLSTMT}" > SQLCommands.sql
Run Code Online (Sandbox Code Playgroud)
你去吧。
试一试 !!!
归档时间: |
|
查看次数: |
6112 次 |
最近记录: |