视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL压力性能测试(Mysqlslap)工具
2020-11-09 09:56:31 责编:小采
文档


本文章介绍一个mysql官方提供的Mysqlslap工具对mysql性能进行测试,有需要的朋友可以参考本文章来测试你的mysql性能与负载哦。

Mysqlslap是从5.1.4版开始的一个MySQL官方提供的压力测试工具。通过模拟多个并发客户端访问MySQL来执行压力测试,同时详细的提供了“高负荷攻击MySQL”的数据性能报告。并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别。

它的使用语法如下:
shell>/usr/local//bin/mysqlslap [options]

常用参数【options】详细介绍:
--concurrency代表并发数量,多个可以用逗号隔开。例如:--concurrency=50,200,500
--engines代表要测试的引擎,可以有多个,用分隔符隔开。例如:--engines=myisam,innodb,memory
--iterations代表要在不同并发环境下,各自运行测试多少次。
--auto-generate-sql 代表用mysqlslap工具自己生成的SQL脚本来测试并发压力。
--auto-generate-sql-add-auto-increment 代表对生成的表自动添加auto_increment列,从5.1.18版本开始,
--auto-generate-sql-load-type 代表要测试的环境是读操作还是写操作还是两者混合的(read,write,update,mixed)
--number-of-queries 代表总共要运行多少条查询。
--debug-info 代表要额外输出CPU以及内存的相关信息。
--number-int-cols 代表示例表中的INTEGER类型的属性有几个。
--number-char-cols代表示例表中的vachar类型的属性有几个。
--create-schema 代表自定义的测试库名称。
--query 代表自定义的测试SQL脚本。

说明:

测试的过程需要生成测试表,插入测试数据,这个mysqlslap可以自动生成,默认生成一个mysqlslap的schema,如果已经存在则先删除。可以用-only-print来打印实际的测试过程,整个测试完成后不会在中留下痕迹。


实验步骤:

练习一:
单线程测试。测试做了什么。
>./bin/mysqlslap -a -uroot -p111111
多线程测试。使用--concurrency来模拟并发连接。
> ./bin/mysqlslap -a -c 100 -uroot -p111111
迭代测试。用于需要多次执行测试得到平均值。
> ./bin/mysqlslap -a -i 10 -uroot -p111111

练习二:
> ./bin/mysqlslap -auto-generate-sql-add-autoincrement -a -uroot -p111111
> ./bin/mysqlslap -a -auto-generate-sql-load-type=read -uroot -p111111
> ./bin/mysqlslap -a -auto-generate-secondary-indexes=3 -uroot -p111111
> ./bin/mysqlslap -a -auto-generate-sql-write-number=1000 -uroot -p111111

> ./bin/mysqlslap --create-schema world -q " count(*) from City" -uroot -p111111
> ./bin/mysqlslap -a -e innodb -uroot -p111111
> ./bin/mysqlslap -a --number-of-queries=10 -uroot -p111111


练习三:
执行一次测试,分别50和100个并发,执行1000次总查询:
> ./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --debug-info -uroot -p111111

50和100个并发分别得到一次测试结果(Benchmark),并发数越多,执行完所有查询的时间越长。为了准确起见,可以多迭代测试几次:
> ./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info -uroot -p111111

测试同时不同的存储引擎的性能进行对比:
>./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info -uroot -p111111

下载本文
显示全文
专题