旺旺CTO 2018-03-02
MySQLSlap是MySQL自带的基准测试工具,无需单独安装即可使用。下面记录一下在服务器上用 MySQLSlap做MySQL基本测试的步骤。
1. cd /usr/local/mysql/bin/
进入mysql安装目录的bin目录下,我的mysql安装在 /usr/local下。
2. mysqlslap --concurrency=1,50,100 --iterations=3 --number-int-cols=5
--number-char-cols=5 --auto-generate-sql
--auto-generate-sql-add-autoincrement --engine=myisam,innodb
--number-of-queries=10 --create-schema=dbtest -uroot -pphp
运行mysqlslap命令并带上相应的参数和mysql用户名与密码。然后屏幕上会输出当前测试的结果, 如下图所示:
因为在参数中指定了--engine=myisam,innodb,所以会单独对这2个引擎做基准测试。对测试结果大概翻译如下:
运行引擎InnoDB
运行所有查询的平均秒数:0.936秒
运行所有查询的最小秒数:0.865秒
运行所有查询的最大秒数:1.017秒
正在运行的查询的连接数:100
每连接的平均查询数:0
3. 加上--only-print参数,查看具体的SQl执行:
mysqlslap --concurrency=1,50,100 --iterations=3 --number-int-cols=5
--number-char-cols=5 --auto-generate-sql
--auto-generate-sql-add-autoincrement --engine=myisam,innodb
--number-of-queries=10 --create-schema=dbtest -uroot -pphp --only-print | more
输出结果如下:
可以看到,其实就是创建了一个库,然后自动生成了一些插入和查询的SQL语句来执行,来生成测试结果,最后再把这个库删除掉。
MySQLSlap常用参数说明 :
1.--auto-generate-sql: 由系统自动生成SQL脚本进行测试
2. --auto-generate-sql-add-autoincrement 在生成的表中增加自增ID
3. --atuo-generate-sql-load-type 指定测试中使用的查询类型
4. --auto-generate-sql-write-number 指定初始化数据时生成的数据量
5. --concurrency :指定并发线程的数量
6. --engine :指定要测试表的存储引擎,可以用逗号分割多个存储引擎
7, --no-drop:指定不清理测试数据
8, --iterations :指定测试运行的次数
9. --number-of-queries:指定每一个线程执行的查询数量
10. --debug-info 指定输出额外的内存及CPU统计信息
11.--number-int-cols:指定测试表中包含INT类型列的数量
12.--number-char-cols:指定测试表中包含的varchar类型的数量
13. --create-schema:指定了用于执行测试的数据库的名字
14, --query 用于指定自定义的SQL的脚本
15,--only-print 并不运行测试脚本,而是把生成的脚本打印出来