最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL性能测试—前期知识储备

来源:懂视网 责编:小采 时间:2020-11-09 13:13:13
文档

MySQL性能测试—前期知识储备

MySQL性能测试—前期知识储备:今天是妇女节,先祝所有过节的女同胞们节日快乐:) 即将对MySQL进行性能测试。所以事先对MySQL的测试工作进行一番了解。主要考察性能测试的工具,MySQL的关键指标,以及一些基础的Benchmark数据,为测试用例和场景的规划做些准备。 先说说考量的指标(转载
推荐度:
导读MySQL性能测试—前期知识储备:今天是妇女节,先祝所有过节的女同胞们节日快乐:) 即将对MySQL进行性能测试。所以事先对MySQL的测试工作进行一番了解。主要考察性能测试的工具,MySQL的关键指标,以及一些基础的Benchmark数据,为测试用例和场景的规划做些准备。 先说说考量的指标(转载

其中QPS和TPS自然是重点考察的性能指标。其他指标可以作为每次测试数据的参考数据列出。如果遇到瓶颈,可能还需要考量当时系统的cpu,网络,磁盘的利用率情况。这个遇到具体问题再具体分析。

工具方面,首选考察的自然是MySQL自带的测试工具mysqlslap。

./mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info -uroot -proot

一个简单的示例即可说明工具的使用情况,

-a 自动生成sql
--concurrency=50,100分别执行50,100并发,
--iterations=5 执行5次,引擎分别选用myisam和innodb引擎测试。

--number-of-queries    Limit each client to this number of queries (this is not
                      exact).(一个客户端执行的测试SQL数量上限,通过--only-print观察自动生成的sql的执行情况来看,该条数限制的是准备数据以外的SQL语句的条数)
--engine=myisam,innodb 分别用myisam和innodb引擎进行测试。

当然你也可以通过-q指定你想要测试的sql脚本,测试结束后,mysqlslap会给出你测试的相关数据。

关于mysqlslap的更多参数可参考:http://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html
从目前来看上手还是比较容易的。通过执行的query数量和时间,很容易计算出tps和qps等指标。

SysBench

也是MySQL官网提到的一个benchmark工具。只是在64位系统下安装困难,限于网络环境和考虑到其功能和我们即将进行的测试场景,暂时放弃。

性能测试基础准备其他话题

在思考和验证怎样使用mysqlslap规划测试场景的过程中,收获到一些离散的细节问题,也在此一并记录一下。也许哪天,哪一条就会有所帮助。

打开MySQL general_log 记录执行的sql情况

默认情况下该属性是关闭的,通过set global general_log=ON 打开后,可在log文件中查看数据库执行的sql记录。该需求是OneCoder想要考察JDBC的batch insert的提交方式,究竟是数据库中是执行的多条insert然后commit还是一个insert values大列表的时候产生的。

对比批量插入数据 多条insert和一条insert 大values列表(values(),(),())方式,性能差别

从目前通过mysqlslap执行测试的效果来看,后者明显优于前者。前者1000条平均时间大约是0.2ms,而后者在0.1ms左右。该测试想法是在通过mysqldump到处已有数据的时候发现其sql文件的生成方式的时候以及联想到oracle到mysql的数据迁移工具的处理方式的时候想到的。

写入性能瓶颈的一个大误解

曾经极大的错误的认为单线程下mysql可处理的批量插入数据量就是该节点的瓶颈,所以只认为多线程并发写入优化只在NDB的环境下才有效。今天在看MySQL的一些benchmark图表曲线的时候,猛然惊醒,并发数和tps的曲线是类抛物线的就说明在一定并发数的范围内,TPS是有明显提高的。于是用以前的JDBC的代码,增加了几个线程,对同一个mysql并发写入,果然TPS成倍提升。

今天总结的大概就这么多,由于是事后回忆总结,不免有所遗漏,想起来再补充把。热烈欢迎指导。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

MySQL性能测试—前期知识储备

MySQL性能测试—前期知识储备:今天是妇女节,先祝所有过节的女同胞们节日快乐:) 即将对MySQL进行性能测试。所以事先对MySQL的测试工作进行一番了解。主要考察性能测试的工具,MySQL的关键指标,以及一些基础的Benchmark数据,为测试用例和场景的规划做些准备。 先说说考量的指标(转载
推荐度:
标签: 知识 妇女节 今天
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top