• 压力测试工具MySQL mysqlslap


    MySQL mysqlslap压测

    2016-09-12 17:49 by pursuer.chen, 771 阅读, 0 评论, 收藏编辑

    介绍

    mysqlslap是mysql自带的一个性能压测工具;mysqlslap用于和其它的一些性能压测工具一样可以自己造数据进行压测。mysqlslap的报告比较简单主要体现在执行的时间方面,没有sysbench那样的tps、qps等更详细的包括。

    参数

    复制代码
    --auto-generate-sql    -a                     自动生成MySQL测试语句
    --auto-generate-sql-add-autoincrement         添加AUTO_INCREMENT字段
    --auto-generate-sql-execute-number=#          查询的个数
    --auto-generate-sql-guid-primary              添加GUID字段
    --auto-generate-sql-load-type=name            mixed:混合、update:更新、write:写入、key:读主键、read:查询
    --auto-generate-sql-secondary-indexes=#       设置索引字段个数
    --auto-generate-sql-unique-query-number=#     生成N条不同的query sql语句
    --auto-generate-sql-unique-write-number=#     生成N条不同的write sql语句
    --auto-generate-sql-write-number=#            每个线程write sql语句数量
    --commit=#                         设置每多少条sql语句提交一次
    --compress    -C                    启用压缩协议
    --concurrency=#    -c                  客户端数量(并发量)
    --create=name                          测试的SQL语句或文件
    --create-schema=name                    测试的数据名
    --csv=name                                    生产CSV格式数据文件
    --debug    -#                          写调试日志(windows不可用) 如:mysqlslap -a -#"d:t:o,c:/debug.txt"
    --debug-check                        测试后打印调试信息(windows不可用)
    --debug-info    -T                            打印内存和CPU的相关信息
    --default-auth=plugin                         验证插件
    --delimiter=str    -F                         语句分隔符默认是 ;
    --detach=#                                    执行N条语句后断开重连
    --enable-cleartext-plugin                     启用明文身份验证插件
    --engine=engine_name    -e                    测试引擎 如:mysqlslap -e"myisam"或-e"myisam,innodb"
    --help                                        帮助信息
    --host=host_name    -h                        数据库host
    --iterations=#    -i                          重复运行的次数
    --login-path=name                             登陆配置文件
    --no-drop                                     测试后不删除schema
    --number-char-cols=#    -x                    设置VARCHAR类型字段数量
    --number-int-cols=#    -y                     设置INT类型字段数量
    --number-of-queries=#                         每个客户端运行sql语句数量
    --only-print                                  仅显示将被运行的SQL语句--delimiter选项影响
    --password=password    -p                     数据库密码
    --pipe                                        启用管道
    --plugin-dir=path                             插件目录
    --port=port_num    -P                         数据库端口
    --post-query=value                            测试后执行的SQL语句
    --post-system=str                             测试后执行的系统语句
    --pre-query=value                             测试前执行的SQL语句
    --pre-system=str                              测试前执行的系统语句
    --protocol=type                               链接协议 tcp, socket, pipe
    --query=value    -q                           测试的SQL语句 如:mysqlslap --query="SELECT * FROM t1"
    --secure-auth                                 不要发送密码到服务器
    --silent    -s                                不显示测试(静音测试)
    --socket=path    -S                           连接服务器的socket
    --ssl-ca=file_name          
    --ssl-capath=dir_name          
    --ssl-cert=file_name          
    --ssl-cipher=cipher_list          
    --ssl-crl=file_name          
    --ssl-crlpath=dir_name          
    --ssl-key=file_name          
    --ssl-verify-server-cert          
    --user=user_name    -u                        数据库用户名
    --verbose    -v                               输出更多的信息
    --version    -V                               版本信息
    复制代码

    1.分别测试100、200、400个并发执行10w条SQL。

    mysqlslap -uroot -proot -h192.168.10.43 -P3306 --create-schema=chenmh --delimiter=";" --query="call pro_auto_select_pri"  --concurrency=100,200,400 --number-of-queries=100000 

    注意:报告输出的时间主要体现在执行完--number-of-queries指定的查询所花的时间,这里分别是100个并发、200个并发、400个并发执行10w条call所花的时间。默认不指定--iterations代表重复执行一次操作,如果重复执行N此输出的时间也是反应的是单次循环所花的时间。

    2.生成csv

    mysqlslap -a -e"myisam,innodb" --csv="c:/a.csv"

    总结

     mysqlslap主要还是针对数据库的性能测试,并且自动测试功能有限,而且生产报表也不够详细,所以建议还是使用sysbench来做基准测试。

  • 相关阅读:
    静态变量、静态方法说明
    DataGridView导出成excel实例
    异步执行小例子
    多线程操作的例子
    xmlReader遍历xml文档案例
    C#自动登录网页浏览页面 抓取数据
    datatable序列化成xml,xml反序列化成datatable
    TreeView递归法动态添加节点
    今天写的一个导出html页面的过程
    利用委托的BeginInvoke防止界面假死的实例
  • 原文地址:https://www.cnblogs.com/youngerger/p/9019601.html
Copyright © 2020-2023  润新知