使用mysqlslap最好新建1个性能测试数据库,如果使用已有的,再动态创建测试表时,会把已有的数据库表删除。
查询测试
mysqlslap -uroot -p12345 –concurrency=50,100,500 –iterations=1000 –create-schema=’presstest’ –query=”select * from user limit 1,10;” –number-of-queries=3000 –debug-info
1.参数解释
–concurrency代表并发数量,多个可以用逗号隔开,当然你也可以用自己的分隔符隔开,这个时候要用到–delimiter开关。
–engines代表要测试的引擎,可以有多个,用分隔符隔开。
–iterations代表要运行这些测试多少次。
–auto-generate-sql 代表用系统自己生成的SQL脚本来测试。
–auto-generate-sql-load-type 代表要测试的是读还是写还是两者混合的(read,write,update,mixed)
–number-of-queries 代表总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算。比如倒数第二个结果2=200/100。
–debug-info 代表要额外输出CPU以及内存的相关信息。
–number-int-cols 代表示例表中的INTEGER类型的属性有几个。
–number-char-cols 意思同上。
–create-schema 代表自己定义的模式(在MySQL中指数据库名)。
–query 代表自己的SQL脚本。
–only-print 如果只想打印看看SQL语句是什么,可以用这个选项。
insert的测试
create table test(id int(10) auto_increment primary key, amount int, note varchar(100) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysqlslap –concurrency=1000 –iterations=1 –create-schema=’smallbss’ –query=”insert into test (amount,note) values (111,’test’)” –number-of-queries=10 –debug-info -uroot -p12345
mysqlslap –concurrency=1000 –iterations=1 –create-schema=’smallbss’ –query=”select * from user where user_id=’20160606000009’” –number-of-queries=10 –debug-info -uroot -p12345
2.mysqlslap运行报不支持default-character-set=utf8的错误,则应修改vi /etc/my.cnf文件,如下
#default-character-set=utf8
loose-default-character-set=utf8