Mysqlslap性能测试

应用mysql自带工具mysqlslap对本地表中数据进行测试

Usage: mysqlslap [OPTIONS]
                                                             
Default options are  read  from the following files  in  the given order:
/etc/my .cnf  /etc/mysql/my .cnf  /usr/local/mysql/etc/my .cnf ~/.my.cnf
The following  groups  are  read : mysqlslap client
The following options may be given as the first argument:
--print-defaults        Print the program argument list and  exit .
--no-defaults           Don't  read  default options from any option  file ,
                         except  for  login  file .
--defaults- file = #       Only read default options from the given file #.
--defaults-extra- file = # Read this file after the global files are read.
022
--defaults-group-suffix= #
                         Also  read  groups  with concat(group, suffix)
--login-path= #          Read this path from the login file.
   -?, --help          Display this help and  exit .
   -a, --auto-generate-sql 自动生成测试表和数据
027
                       Generate SQL where not supplied by  file  or  command  line.
028
   --auto-generate-sql-add-autoincrement 增加auto_increment一列
                       Add an AUTO_INCREMENT column to auto-generated tables.
   --auto-generate-sql-execute-number= # 自动生成的查询的个数
                       Set this number to generate a  set  number of queries to
                       run.
   --auto-generate-sql-guid-primary 增加基于GUID的主键
                       Add GUID based primary keys to auto-generated tables.
   --auto-generate-sql-load- type =name 测试语句的类型。取值包括: read ,key,write,update和mixed(默认)
                       read :查询 write:插入 key:读主键 update:更新主键 mixed:一半插入一半查询
                       Specify  test  load  type : mixed, update, write, key, or
                       read ; default is mixed.
   --auto-generate-sql-secondary-indexes= # 增加二级索引的个数,默认是0
                       Number of secondary indexes to add to auto-generated
                       tables.
   --auto-generate-sql-unique-query-number= # 不同查询的数量,默认值是10
                       Number of unique queries to generate  for  automatic tests.
   --auto-generate-sql-unique-write-number= # 不同插入的数量,默认是100
                       Number of unique queries to generate  for
                       auto-generate-sql-write-number.
   --auto-generate-sql-write-number= #
048
                       Number of row inserts to perform  for  each thread (default
                       is 100).
   --commit= #          多少条DML后提交一次
                       Commit records every X number of statements.
   -C, --compress      如果服务器和客户端支持都压缩,则压缩信息传递
                       Use compression  in  server /client  protocol.
   -c, --concurrency=name 模拟N个客户端并发执行 select 。可指定多个值,以逗号或者 --delimiter 参数指定的值做为分隔符
                       Number of clients to simulate  for  query to run.
   --create=name       指定用于创建表的.sql文件或者字串
                       File or string to use create tables.
   --create-schema=name 指定待测试的数据库名,MySQL中schema也就是database,默认是mysqlslap
                       Schema to run tests  in .
   --csv[=name]        Generate CSV output to named  file  or to stdout  if  no  file
                       is named.
   - #, --debug[=#]     This is a non-debug version. Catch this and exit.
   --debug-check       Check memory and  open  file  usage at  exit .
   -T, --debug-info    打印内存和CPU的信息
                       Print some debug info at  exit .
   --default-auth=name Default authentication client-side plugin to use.
   -F, --delimiter=name 文件中的SQL语句使用分割符号
                       Delimiter to use  in  SQL statements supplied  in  file  or
                       command  line.
   --detach= #          每执行完N个语句,先断开再重新打开连接
                       Detach (close and reopen) connections after X number of
                       requests.
   -- enable -cleartext-plugin
                       Enable /disable  the  clear  text authentication plugin.
   -e, --engine=name   创建测试表所使用的存储引擎,可指定多个
                       Storage engine to use  for  creating the table.
   -h, --host=name     Connect to host.
   -i, --iterations= #  迭代执行的次数
                       Number of  times  to run the tests.
   --no-drop           Do not drop the schema after the  test .
   -x, --number-char-cols=name 自动生成的测试表中包含多少个字符类型的列,默认1
                       Number of VARCHAR columns to create  in  table  if
                       specifying --auto-generate-sql.
   -y, --number-int-cols=name 自动生成的测试表中包含多少个数字类型的列,默认1
                       Number of INT columns to create  in  table  if  specifying
                       --auto-generate-sql.
   --number-of-queries= # 总的测试查询次数(并发客户数×每客户查询次数)
                       Limit each client to this number of queries (this is not
                       exact).
   --only-print        只输出模拟执行的结果,不实际执行
                       Do not connect to the databases, but instead print out
                       what would have been  done .
   -p, --password[=name]
                       Password to use when connecting to server. If password is
                       not given it's asked from the  tty .
   --plugin- dir =name   Directory  for  client-side plugins.
   -P, --port= #        Port number to use for connection.
   --post-query=name   测试完成以后执行的SQL语句的文件或者字符串 这个过程不影响时间计算
                       Query to run or  file  containing query to execute after
                       tests have completed.
   --post-system=name  测试完成以后执行的系统语句 这个过程不影响时间计算
                       system() string to execute after tests have completed.
   --pre-query=name    测试执行之前执行的SQL语句的文件或者字符串 这个过程不影响时间计算
                       Query to run or  file  containing query to execute before
                       running tests.
   --pre-system=name   测试执行之前执行的系统语句 这个过程不影响时间计算
                       system() string to execute before running tests.
   --protocol=name     The protocol to use  for  connection (tcp, socket, pipe,
                       memory).
   -q, --query=name    指定自定义.sql脚本执行测试。例如可以调用自定义的一个存储过程或者sql语句来执行测试
                       Query to run or  file  containing query to run.
   -s, --silent        不输出
                       Run program  in  silent mode - no output.
   -S, --socket=name   The socket  file  to use  for  connection.
   --ssl               Enable SSL  for  connection (automatically enabled with
                       other flags).
   --ssl-ca=name       CA  file  in  PEM  format  (check OpenSSL docs, implies
                       --ssl).
   --ssl-capath=name   CA directory (check OpenSSL docs, implies --ssl).
   --ssl-cert=name     X509 cert  in  PEM  format  (implies --ssl).
   --ssl-cipher=name   SSL cipher to use (implies --ssl).
   --ssl-key=name      X509 key  in  PEM  format  (implies --ssl).
   --ssl-crl=name      Certificate revocation list (implies --ssl).
   --ssl-crlpath=name  Certificate revocation list path (implies --ssl).
   --ssl-verify-server-cert
                       Verify server's  "Common Name"  in  its cert against
                       hostname  used when connecting. This option is disabled by
                       default.
   -u, --user=name     User  for  login  if  not current user.
   - v , --verbose       输出更多的信息
                       More verbose output; you can use this multiple  times  to
                       get even  more  verbose output.
   -V, --version       Output version information and  exit .


表A Innodb

设主键自增即可

表B myisam

mysqlslap --create-schema=test --number-of-queries=1000 --no-drop -uroot -proot --delimiter=";" --concurrency=100 --iterations=5 --debug-info --query="select; insert;commit;" --only-print

来看看要执行什么。

执行:

mysqlslap --create-schema=test --number-of-queries=1000 --no-drop -uroot -proot --delimiter=";" --concurrency=100 --iterations=5 --debug-info --query="select; insert;commit;"


注意:concurrency仅仅是模拟,并不是实际意义上的多个进程,故需要其多个cmd进行测试。

bat脚本实现并发控制



Ref:http://purplegrape.blog.51cto.com/1330104/1273167

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值