学习笔记:MySQL基准测试之Benchmark Suite
来源:互联网 发布:初中数学网络研讨 编辑:程序博客网 时间:2024/06/05 14:19
MySQL Benchmark Suite是除了“mysqlslap”命令行工具(http://blog.csdn.net/sweeper_freedoman/article/details/73556910)以外,MySQL安装自带的另一套功能更加强大的基准测试套件(https://dev.mysql.com/doc/refman/5.6/en/mysql-benchmarks.html)。不过5.7版本已经拿掉了,学习用就只能参考5.6版本的文档,在我本地Ubuntu Linux安装的是最新版本的MySQL,所以也只能下载一个5.6的源码包,然后把该组件单独移进去,其目录为“sql-bench”(https://dev.mysql.com/doc/internals/en/sql-bench-directory.html)。MySQL基准测试套件是用Perl语言写的,所以要运行它还得额外安装一些Perl支持(https://dev.mysql.com/doc/refman/5.6/en/perl-installation.html)。进入sql-bench目录,主要看到的是一些Shell脚本,其用来调用Perl程序进行基准测试任务。
如果MySQL安装没有该套件,如现在的新版本,首先是获取一套组件,移入自己的MySQL安装目录。
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.36.tar.gztar -xz -f mysql-5.6.36.tar.gzcp -rf mysql-5.6.36/sql-bench/ /usr/share/mysql/sql-bench/cd /usr/share/mysql/sql-bench/ ; ls
安装Perl支持,如果系统没有安装Perl需要先安装Perl再执行(Ubuntu应该是自带的)。
perl -MCPAN -e shell /× 然后回车即可 ×/install DBIinstall DBD::mysql
执行一个INSERT测试小栗子吧,好像都是很费时间的,尤其是全测。可以先看看目录下的README文件,介绍了使用方法。
perl test-insert.sh --server=mysql --user=root --password=520 --database=benchmarker --log --fast
竟然报错了,一脸懵逼啊。
Can't locate /usr/share/mysql/sql-bench/bench-init.pl in @INC…………Can't locate /usr/share/mysql/sql-bench/server-cfg in @INC…………
vim test-insert.sh,去文件看看报错那些行写了什么,一脸懵逼,好像是文件名问题,改一下试试看。
cp bench-init.pl.sh bench-init.plcp server-cfg.sh server-cfg
改完以后竟然好了,开始进行基准测试任务了。我的神船笔记本的风扇开始嗡嗡叫了,也不断有打印信息出来。
- --database选项指定进行测试的schema,老版本默认是test自带库,新版本的MySQL安装已经移除了该库,因此需要指定一个。
- --log用于监控测试进度。
- --fast允许测试使用非标准SQL以加快测试。
这个时候可以去睡觉或者做其他事情了。测试结果比较长和详细,但输出格式基本上是一致的,这里就截取本次实例的前一部分说明一下了。
Testing server 'MySQL 5.7.18 0ubuntu0.16.04.1' at 2017-06-22 5:50:11Testing the speed of inserting data into 1 table and do some selects on it.The tests are done with a table that has 100000 rows.Generating random keysCreating tablesInserting 100000 multiple-value rows in orderInserting 100000 multiple-value rows in reverse orderInserting 100000 multiple-value rows in random orderTime for insert (300000): 11 wallclock secs ( 0.32 usr 0.04 sys + 0.00 cusr 0.00 csys = 0.36 CPU)Time for book-keeping (1): 12 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)Testing insert of duplicatesTime for insert_duplicates (100000): 11 wallclock secs ( 0.62 usr 1.75 sys + 0.00 cusr 0.00 csys = 2.37 CPU)Test of prepared+execute/once prepared many execute selectsTime for prepared_select (100000): 19 wallclock secs ( 0.48 usr 5.35 sys + 0.00 cusr 0.00 csys = 5.83 CPU)Time for once_prepared_select (100000): 14 wallclock secs ( 0.81 usr 2.25 sys + 0.00 cusr 0.00 csys = 3.06 CPU)Retrieving data from the table第一行输出的是当前测试MySQL服务器版本和测试时间。二三行是对本次测试job的说明,即对1张10w行数据的表读写速度的测试,该表是基准测试时自己创建的,测试期间可以去自己指定的测试库中看到这张表(`benchmark×`),也可以监控processlist看看测试在搞什么鬼。接下来几行就是该表的创建说明,可以看到10w行数据分别用了顺序写、倒序写和随机写三种方式进行了插入测试。
插入这30w行数据一共用了11秒,其中包含执行测试脚本的0.36秒额外消耗(usr、sys、cusr、csys),所以MySQL的实际性能应该是11 - 0.36 = 10.64秒。后面的输出基本上维持这种格式,是一些更细项目的测试结果。MySQL Benchmark Suit的功能覆盖纯数据库层级的各种工作场景,连接访问、DDL、DML、DQL、事务、大数据表格以及数据库整体运行等,可以作为数据库应用基准测试的选择。
- 学习笔记:MySQL基准测试之Benchmark Suite
- 学习笔记:MySQL基准测试之BENCHMARK()和mysqlslap
- 学习笔记:MySQL基准测试之sysbench
- 学习笔记:MySQL基准测试之tpcc-mysql
- 学习笔记3:Mysql基准测试
- HDFS benchmark 基准测试
- Java Benchmark 基准测试
- CI框架源码阅读笔记5 基准测试 BenchMark.php
- CI框架源码阅读笔记5 基准测试 BenchMark.php
- CI框架源码阅读笔记5 基准测试 BenchMark.php
- Benchmark Testing - 性能基准测试
- 大数据基准测试(Benchmark)
- 基准测试工具之tpcc-mysql
- MYSQL性能优化之基准测试
- CodeIgniter框架源码笔记(8)——性能调试:基准测试类Benchmark.php
- Hadoop基准测试HiBench 学习笔记 - 1
- 【学习笔记】高性能MySQL(第三版)——第2章:MySQL基准测试
- CI框架源码解析四之基准测试类文件Benchmark.php
- spark yarn /bin/bash: /bin/java: is a directory
- java插件的在线安装、卸载、使用:WindowBuilder
- JAVA获取表单参数的几种方式
- 基本常识
- 1204 糖果大战
- 学习笔记:MySQL基准测试之Benchmark Suite
- Android Kotlin资源整理
- Android Studio插件整理
- Andoird控件收集
- Android一些开源第三方
- assets、raw(文件夹、作用,区别) 、 SharedPreference(存放配置信息)
- andrid studio导入java项目
- P1809【USACO2.3.1】Longest Prefix最长前缀 IOI'96
- JDBC使用技术及事例