mysql 性能测试 mysqlslap 的使用介绍

一、帮助文档

  -?, --help          Display this help and exit.
                      (显示帮助并退出)
 
  -a, --auto-generate-sql 
                      Generate SQL where not supplied by file or command line.
                     (自动生成sql语句)
 
  --auto-generate-sql-add-autoincrement 
                      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 
                      Add GUID based primary keys to auto-generated tables.
                      (将基于guid的主键添加到自动生成的表中)
 
  --auto-generate-sql-load-type=name 
                      Specify test load type: mixed, update, write, key, or read; default is mixed.
                      (指定测试加载类型:mixed、update、write、key或read;默认为mixed)
 
  --auto-generate-sql-secondary-indexes=# 
                      Number of secondary indexes to add to auto-generated tables.
                      (要添加到自动生成的表中的辅助索引数)
 
  --auto-generate-sql-unique-query-number=# 
                      Number of unique queries to generate for automatic tests.
                      (为自动测试生成的唯一查询数)
 
  --auto-generate-sql-unique-write-number=# 
                      Number of unique queries to generate for auto-generate-sql-write-number.
                      (为自动生成SQL写入编号而要生成的唯一查询数)
 
  --auto-generate-sql-write-number=# 
                      Number of row inserts to perform for each thread (default is 100).
                      (每个线程执行的行插入数(默认值为100))
 
  --commit=#          Commit records every X number of statements.
                      (每隔x条语句提交一次记录)
 
  -C, --compress      Use compression in server/client protocol.
                      (在服务器/客户端协议中使用压缩)
 
  -c, --concurrency=name 
                      Number of clients to simulate for query to run.
                      (要模拟以运行查询的客户端数)
 
  --create=name       File or string to use create tables.
                      (创建文件或字符串的名称)
 
  --create-schema=name 
                      Schema to run tests in.
                      (指定测试库名称)
 
  -F, --delimiter=name 
                      Delimiter to use in SQL statements supplied in file or command line.
                      (要在文件或中提供的SQL语句中使用的分隔符命令行)
 
  -e, --engine=name   Storage engine to use for creating the table.
                      (选择查询引擎)
 
  -h, --host=name     Connect to host.
                      (主机ip/域名)
 
  -i, --iterations=#  Number of times to run the tests.
                      (运行测试的次数)
 
  --no-drop           Do not drop the schema after the test.
                     (不要在测试后删除架构)
 
  -x, --number-char-cols=name 
                      Number of VARCHAR columns to create in table ifspecifying --auto-generate-sql.
                      (要在表ifspecifying中创建的varchar列数--自动生成SQL)
 
  -y, --number-int-cols=name 
                      Number of INT columns to create in table if specifying --auto-generate-sql.
                      (要在表ifspecifying中创建的int列数--自动生成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
                      (不要连接到数据库,而是打印出来)
 
  -p, --password[=name] 
                      Password to use when connecting to server.
                     (连接服务器的密码)
 
  -P, --port=#        Port number to use for connection.
                      (连接服务器的端口)
 
  --protocol=name     The protocol to use for connection (tcp, socket, pipe, memory).
                      (用于连接的协议(TCP、套接字、管道、内存))
  -q, --query=name    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.
                      (用于连接的套接字文件)
 
  -u, --user=name     User for login if not current user.
                      (连接服务器的登陆名)
 
  -V, --version       Output version information and exit.
                      (输出版本并退出)
 

二、使用

单线程测试。测试做了什么。
# mysqlslap -a -uroot -p123456
多线程测试。使用–concurrency来模拟并发连接。
# mysqlslap -a -c 100 -uroot -p123456
迭代测试。用于需要多次执行测试得到平均值。
# mysqlslap -a -i 10 -uroot -p123456
 
 
50和100个并发分别得到一次测试结果(Benchmark),并发数越多,执行完所有查询的时间越长。为了准确起见,可以多迭代测试几次:
# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info -uroot -p123456

一般测试语句的使用

# mysqlslap --host=localhost --port=3306 --user=root --password='sss' --concurrency=100  --create-schema=aaa --query="ontest.sql"  --delimiter=";"

 

 

上一篇:Thrift 动态库编译


下一篇:Laravel中使用QRcode自制二维码