• mysqlslap详解--MySQL自带的性能压力测试工具(转)


     本文的参考博客地址为:https://blog.csdn.net/fuzhongfaya/article/details/80943991 和 https://www.cnblogs.com/davygeek/p/5253830.html

    本文的目的一方面是自己整理,防止后续忘记,一方面是对参考博客的进行验证.

    首先在这里介绍一下常用的参数及其说明:

    --auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力。

    --auto-generate-sql-load-type=type 测试语句的类型。代表要测试的环境是读操作还是写操作还是两者混合的。取值包括:read,key,write,update和mixed(默认)。

    --auto-generate-sql-guid-primary 增加基于GUID的主键

    --auto-generate-sql-add-auto-increment 代表对生成的表自动添加auto_increment列,从5.1.18版本开始支持。
    --number-char-cols=N, -x N 自动生成的测试表中包含多少个字符类型的列,默认1
    --number-int-cols=N, -y N 自动生成的测试表中包含多少个数字类型的列,默认1
    --number-of-queries=N 总的测试查询次数(并发客户数×每客户查询次数)
    --query=name,-q 使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。
    --create-schema 代表自定义的测试库名称,测试的schema,MySQL中schema也就是database。
    --commint=N 多少条DML后提交一次。
    --compress, -C 如果服务器和客户端支持都压缩,则压缩信息传递。
    --concurrency=N, -c N 表示并发量,也就是模拟多少个客户端同时执行select。可指定多个值,以逗号或者--delimiter参数指定的值做为分隔符。例如:--concurrency=100,200,500。
    --engine=engine_name, -e engine_name 代表要测试的引擎,可以有多个,用分隔符隔开。例如:--engines=myisam,innodb。
    --iterations=N, -i N 测试执行的迭代次数,代表要在不同并发环境下,各自运行测试多少次。
    --only-print 只打印测试语句而不实际执行。
    --detach=N 执行N条语句后断开重连。
    --debug-info, -T 打印内存和CPU的相关信息。

    执行测试:

    1.执行测试并打印测试的详细过程:mysqlslap -a -uroot -proot  --only-print

     可以看到执行测试的过程首先是创建schema ,然后再是创建表,测试结束的时候回删除表以及删除schema

    2.分别用50和100个客户端连接去测试100条查询

     mysqlslap -a -uroot -proot --concurrency=50,100 --number-of-queries=100

     可以看到对应的每个连接上分配到的查询数平均值分别为2和1 

    3. 实际测试中的复杂情况。 

    使用 --number-int-cols 选项,指定表中会包含 4 个 int 型的列。 
    使用 --number-char-cols 选项,指定表中会包含 35 个 char 型的列。 
    使用 --engine 选项,指定针对何种存储引擎进行测试。 

    mysqlslap –uroot -proot --concurrency=50 --iterations=1 --number-int-cols=2--number-char-cols=1 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam,innodb --number-of-queries=200 --only-print

    可以看出生成的默认sql语句和表结构已经有了变化,除了自增列外包含2个数字列和一个varchar 列

     4、实现基于自定义的sql语句进行性能测试

    mysqlslap –uroot -proot --delimiter=";" --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" --query="SELECT * FROM a" --concurrency=50 --iterations=200

  • 相关阅读:
    Maximum Flow Exhaustion of Paths Algorithm
    ubuntu下安装java环境
    visualbox使用(二)
    vxworks一个超级奇怪的错误(parse error before `char')
    February 4th, 2018 Week 6th Sunday
    February 3rd, 2018 Week 5th Saturday
    February 2nd, 2018 Week 5th Friday
    February 1st, 2018 Week 5th Thursday
    January 31st, 2018 Week 05th Wednesday
    January 30th, 2018 Week 05th Tuesday
  • 原文地址:https://www.cnblogs.com/cheng21553516/p/11374840.html
Copyright © 2020-2023  润新知