简介
mysqlslap是一个诊断程序,旨在模拟MySQL服务器的客户端负载并报告每个阶段的时间。它就像多个客户端正在访问服务器一样工作。
像这样 调用mysqlslap(windows下调用powershell或者cmd窗口,linux直接运行命令即可):
shell> mysqlslap [options]
- 一些选项,例如–create 或–query使您能够指定包含SQL语句的字符串或包含语句的文件。
- 如果指定文件,则默认情况下该文件每行必须包含一个语句。(也就是说,隐式语句定界符是换行符。)使用该 --delimiter选项可以指定其他定界符,这使您可以指定跨越多行的语句或将多条语句放在一行上。您不能在文件中包含注释; mysqlslap无法理解它们。
mysqlslap分三个阶段运行:
-
创建架构,表以及可选的任何存储程序或数据以用于测试。此阶段使用单个客户端连接。
-
运行负载测试。此阶段可以使用许多客户端连接。
-
清理(断开连接,如果指定的话,删除表)。此阶段使用单个客户端连接。
一.实例说明
例子:
提供您自己的create和query SQL语句,其中包含50个客户端查询和200个选择(在一行中输入命令):
mysqlslap --delimiter=";"
--create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)"
--query="SELECT * FROM a" --concurrency=50 --iterations=200
让mysqlslap用两INT列和三VARCHAR列的表构建查询SQL语句。使用五个客户端,每个客户端查询20次。不要创建表或插入数据(即,使用先前测试的架构和数据):
mysqlslap --concurrency=5 --iterations=20
--number-int-cols=2 --number-char-cols=3
--auto-generate-sql
告诉程序从指定的文件加载创建,插入和查询SQL语句,其中该 create.sql文件包含多个以分隔的表创建语句’;‘和多个以分隔的插入语句’;’。该 --query文件将包含多个以分隔的查询’;’。运行所有装入语句,然后使用五个客户端(每个客户端五次)运行查询文件中的所有查询:
mysqlslap --concurrency=5
--iterations=5 --query=query.sql --create=create.sql
--delimiter=";"
二.参数说明
mysqlslap选项
选项名称 | 描述 | 版本起止 |
---|---|---|
- -auto-generate-sql | 命令选项未提供或未使用文件时自动生成SQL语句 | |
- -auto-generate-sql-add-autoincrement | 在自动生成的表中增加自增列 | |
- -auto-generate-sql-execute-number | 指定自动生成多少个查询 | |
- -auto-generate-sql-guid-primary | 将基于GUID的主键添加到自动生成的表中 | |
- -auto-generate-sql-load-type | 指定测试负载类型 | |
- -auto-generate-sql-secondary-indexes | 指定要添加到自动生成的表中的二级索引的数量 | |
- -auto-generate-sql-unique-query-number | 为自动测试生成多少 |