mysqlslap是一个诊断程序,旨在模拟MySQL服务器的客户端负载并报告每个阶段的时间。它就像多个客户端正在访问服务器一样工作。
像这样 调用mysqlslap:
shell> mysqlslap [options]
一些选项,例如--create
或--query
使您能够指定包含SQL语句或包含语句的文件的字符串。如果您指定了一个文件,默认情况下它必须每行包含一条语句。(也就是说,隐式语句分隔符是换行符。)使用该 --delimiter
选项指定不同的分隔符,这使您可以指定跨多行的语句或将多个语句放在一行中。您不能在文件中包含评论; mysqlslap不理解他们。
mysqlslap运行分三个阶段:
创建模式,表格以及可选的任何存储程序或数据以用于测试。该阶段使用单个客户端连接。
运行负载测试。这个阶段可以使用许多客户端连接。
清理(如果指定,断开连接,删除表)。该阶段使用单个客户端连接。
例子:
提供自己的创建和查询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支持下面的选项,可以在命令行或在指定 [mysqlslap]
与[client]
一个选项文件的组。有关MySQL程序使用的选项文件的信息,请参见第4.2.6节“使用选项文件”。
表4.16 mysqlslap选项
格式 | 描述 | 介绍 | 删除 |
---|---|---|---|
--auto-产生-SQL | 如果没有在文件中提供或使用命令选项,则会自动生成SQL语句 | ||
--auto-产生-SQL插件自动增量 | 将AUTO_INCREMENT列添加到自动生成的表格 | ||
--auto-生成-SQL执行数 | 指定自动生成多少个查询 | ||
--auto-生成-SQL-GUID-主 | 将基于GUID的主键添加到自动生成的表中 | ||
--auto-生成-SQL负载型 | 指定测试负载类型 | ||
--auto-生成-SQL二次索引 | 指定添加到自动生成的表格的次数索引 | ||
--auto-产生-SQL唯一查询号码 | 为自动测试生成多少个不同的查询。 | ||
--auto-产生-SQL唯一写入数 | 为--auto-generate-sql-write-number生成多少个不同的查询 | ||
--auto-产生-SQL写号 | 在每个线程上执行多少行插入 | ||
- 承诺 | 在提交之前要执行多少个语句。 | ||
- 压缩 | 压缩客户端和服务器之间发送的所有信息 | ||
--concurrency | 发出SELECT语句时要模拟的客户端数量 | ||
- 创建 | 包含用于创建表的语句的文件或字符串 | ||
--create-模式 | 运行测试的模式 | ||
--csv | 以逗号分隔值格式生成输出 | ||
--debug | 编写调试日志 | ||
--debug检查 | 程序退出时打印调试信息 | ||
- 调试信息 | 打印程序退出时的调试信息,内存和CPU统计信息 | ||
--default-AUTH | 身份验证插件使用 | ||
--defaults-额外文件 | 除了通常的选项文件外,还可以读取已命名的选项 | ||
--defaults文件 | 只读取命名的选项文件 | ||
--defaults基团的后缀 | 选项组后缀值 | ||
对齐和美化--delimiter | 在SQL语句中使用分隔符 | ||
- 分离 | 在每个N语句后分离(关闭并重新打开)每个连接 | ||
--enable-明文-插件 | 启用明文身份验证插件 | ||
- 发动机 | 用于创建表的存储引擎 | ||
--get-服务器的公钥 | 从服务器请求RSA公钥 | 8.0.3 | |
- 帮帮我 | 显示帮助信息并退出 | ||
- 主办 | 连接到给定主机上的MySQL服务器 | ||
--iterations | 运行测试的次数 | ||
--login路径 | 阅读.mylogin.cnf中的登录路径选项 | ||
--no-默认 | 不读取任何选项文件 | ||
- 没有下降 | 不要删除在测试运行期间创建的任何模式 | ||
--number-char型的cols | 指定了--auto-generate-sql时要使用的VARCHAR列的数量 | ||
--number-INT-的cols | 指定了--auto-generate-sql时要使用的INT列数 | ||
--number-的查询 | 将每个客户端限制为大约这个数量的查询 | ||
--only打印 | 不要连接到数据库。mysqlslap只打印它会做的事情 | ||
- 密码 | 连接到服务器时使用的密码 | ||
- 管 | 在Windows上,使用命名管道连接到服务器 | ||
--plugin-DIR | 安装插件的目录 | ||
- 港口 | 用于连接的TCP / IP端口号 | ||
--post查询 | 包含要在测试完成后执行的语句的文件或字符串 | ||
--post系统 | 测试完成后使用system()执行的字符串 | ||
- 事先查询 | 包含要在运行测试之前执行的语句的文件或字符串 | ||
- 事先系统 | 在运行测试之前使用system()执行的字符串 | ||
--print-默认 | 打印默认选项 | ||
- 协议 | 使用连接协议 | ||
--query | 包含用于检索数据的SELECT语句的文件或字符串 | ||
--secure-auth的 | 不要以旧(4.1以前)格式向服务器发送密码 | 8.0.3 | |
--server-公钥路径 | 包含RSA公钥的文件的路径名称 | 8.0.4 | |
--shared存储器碱基名 | 用于共享内存连接的共享内存的名称 | ||
- 无声 | 静音模式 | ||
- 插座 | 用于连接到localhost,要使用的Unix套接字文件 | ||
--sql模式 | 为客户端会话设置SQL模式 | ||
--ssl-CA | 包含可信SSL证书颁发机构列表的文件 | ||
--ssl-capath | 包含可信SSL证书颁发机构证书文件的目录 | ||
--ssl证书 | 包含X509证书的文件 | ||
--ssl-密码 | 允许连接加密的密码列表 | ||
--ssl-CRL | 包含证书吊销列表的文件 | ||
--ssl-crlpath | 包含证书撤销列表文件的目录 | ||
--ssl键 | 包含X509密钥的文件 | ||
--ssl模式 | 连接到服务器的安全状态 | ||
--tls版本 | 允许加密连接的协议 | ||
- 用户 | 连接到服务器时使用的MySQL用户名 | ||
--verbose | 详细模式 | ||
- 版 | 显示版本信息并退出 |
--help
,-?
显示帮助信息并退出。
如果没有在文件中提供或使用命令选项,则会自动生成SQL语句。
--auto-generate-sql-add-autoincrement
添加一
AUTO_INCREMENT
列到自动生成的表格。--auto-generate-sql-execute-number=
N
指定自动生成多少个查询。
--auto-generate-sql-guid-primary
将基于GUID的主键添加到自动生成的表中。
--auto-generate-sql-load-type=
type
指定测试负载类型。允许值为
read
(扫描表),write
(插入表格),key
(读取主键),update
(更新主键)或mixed
(半插入,半扫描选择)。默认是mixed
。--auto-generate-sql-secondary-indexes=
N
指定添加到自动生成的表格的次数索引。默认情况下,没有添加。
--auto-generate-sql-unique-query-number=
N
为自动测试生成多少个不同的查询。例如,如果您运行
key
执行1000次选择的测试,则可以使用此值为1000的选项运行1000个唯一查询,或者使用值为50来执行50个不同的选择。默认值是10。--auto-generate-sql-unique-write-number=
N
生成多少个不同的查询
--auto-generate-sql-write-number
。默认值是10。--auto-generate-sql-write-number=
N
要执行多少行插入。默认值是100。
在提交之前要执行多少个语句。缺省值是0(不提交)。
--compress
,-C
压缩客户端和服务器之间发送的所有信息(如果两者均支持压缩)。
--concurrency=
,N
-c
N
要模拟的并行客户端的数量。
包含用于创建表的语句的文件或字符串。
运行测试的模式。
注意如果
--auto-generate-sql
还提供了该 选项,则mysqlslap会在测试运行结束时删除该模式。为了避免这种情况,请使用该--no-drop
选项。以逗号分隔值格式生成输出。输出到指定的文件,或者如果没有给出文件,则输出到标准输出。
--debug[=
,debug_options
]-# [
debug_options
]编写一个调试日志。一个典型的
debug_options
字符串是 。默认是 。d:t:o,
file_name
d:t:o,/tmp/mysqlslap.trace
程序退出时打印一些调试信息。
--debug-info
,-T
在程序退出时打印调试信息和内存以及CPU使用情况统计信息。
关于使用客户端身份验证插件的提示。请参见第6.3.10节“可插入认证”。
--defaults-extra-file=
file_name
在全局选项文件之后读取此选项文件,但在用户选项文件之前(在Unix上)。如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而非完整路径名给出,则相对于当前目录进行解释。只使用给定的选项文件。如果文件不存在或无法访问,则会发生错误。
file_name
如果作为相对路径名而非完整路径名给出,则相对于当前目录进行解释。例外:即使
--defaults-file
读取客户端程序.mylogin.cnf
。不仅要阅读常用选项组,还要阅读具有常用名称和后缀的组
str
。例如, mysqlslap通常读取[client]
和[mysqlslap]
组。如果--defaults-group-suffix=_other
给出该选项,mysqlslap也读取[client_other]
和[mysqlslap_other]
组。--delimiter=
,str
-F
str
在文件或使用命令选项中提供的SQL语句中使用的分隔符。
在每个
N
语句后分离(关闭并重新打开)每个连接 。默认值为0(连接不分离)。启用
mysql_clear_password
明文身份验证插件。(请参见 第6.5.1.4节“客户端明文可插入验证”。)--engine=
,engine_name
-e
engine_name
用于创建表的存储引擎。
从服务器请求它用于基于密钥对的密码交换的RSA公钥。此选项适用于使用通过身份
caching_sha2_password
验证插件进行身份验证的帐户连接到服务器的客户端 。对于通过这些帐户进行的连接,服务器不会将公钥发送给客户端,除非有请求。对于不使用该插件进行身份验证的帐户,该选项将被忽略。如果不需要基于RSA的密码交换,它也会被忽略,例如当客户端使用安全连接连接到服务器时。文章来源:北大青鸟学校开发小组如果 给出并指定了有效的公钥文件,则优先于 。
--server-public-key-path=
file_name
--get-server-public-key
有关该
caching_sha2_password
插件的信息 ,请参见 第6.5.1.3节“缓存SHA-2可插入验证”。--host=
,host_name
-h
host_name
连接到给定主机上的MySQL服务器。
--iterations=
,N
-i
N
运行测试的次数。
从
.mylogin.cnf
登录路径文件中的指定登录路径读取选项 。阿 “ 登录路径 ”是含有指定要连接到哪个MySQL服务器和选项哪个帐户作为认证选项组。要创建或修改登录路径文件,请使用 mysql_config_editor实用程序。请参见 第4.6.7节“ mysql_config_editor - MySQL配置实用程序”。防止mysqlslap放弃在测试运行期间创建的任何模式。
不要阅读任何选项文件。如果由于从选项文件读取未知选项而导致程序启动失败,
--no-defaults
可用于防止读取它们。例外是
.mylogin.cnf
在任何情况下读取文件(如果存在)。这允许以比使用命令行更安全的方式来指定密码,即使在--no-defaults
使用时 也是如此。(.mylogin.cnf
由mysql_config_editor实用程序创建, 请参见 第4.6.7节“ mysql_config_editor - MySQL配置实用程序”。)--number-char-cols=
,N
-x
N
指定
VARCHAR
要使用 的列 数--auto-generate-sql
。--number-int-cols=
,N
-y
N
指定
INT
要使用 的列数--auto-generate-sql
。限制每个客户端大约这么多查询。查询计数考虑到语句分隔符。例如,如果您按如下方式调用mysqlslap,
;
则会识别分隔符,以便查询字符串的每个实例都计为两个查询。结果,插入5行(不是10)。shell> mysqlslap --delimiter=";" --number-of-queries=10 --query="use test;insert into t values(null)"
不要连接到数据库。mysqlslap 只打印它会做的事情。
--password[=
,password
]-p[
password
]连接到服务器时使用的密码。如果使用short option form(
-p
), 则在选项和密码之间不能有空格。如果您省略命令行中password
的--password
或-p
选项后面的 值 ,mysqlslap会提示输入一个值。在命令行中指定密码应被视为不安全。请参见 第6.1.2.1节“密码安全的最终用户指南”。您可以使用选项文件来避免在命令行上输入密码。
--pipe
,-W
在Windows上,使用命名管道连接到服务器。该选项仅适用于服务器支持命名管道连接的情况。
在其中查找插件的目录。如果该
--default-auth
选项用于指定身份验证插件,但是 mysqlslap未找到该选项,请指定此选项 。请参见 第6.3.10节“可插入认证”。--port=
,port_num
-P
port_num
用于连接的TCP / IP端口号。
包含要在测试完成后执行的语句的文件或字符串。该执行不计入计时目的。
system()
测试完成后 要执行的字符串。该执行不计入计时目的。包含要在运行测试之前执行的语句的文件或字符串。该执行不计入计时目的。
system()
在运行测试之前 要执行的字符串。该执行不计入计时目的。打印程序名称以及从选项文件中获取的所有选项。
--protocol={TCP|SOCKET|PIPE|MEMORY}
用于连接到服务器的连接协议。当其他连接参数通常会导致使用的协议不是您想要的协议时,这很有用。有关允许值的详细信息,请参见 第4.2.2节“连接到MySQL服务器”。
--query=
,value
-q
value
包含
SELECT
用于检索数据的语句的文件或字符串 。这个选项在MySQL 8.0.3中被删除。
--server-public-key-path=
file_name
包含客户端副本的文件的路径名,该副本是服务器为基于RSA密钥对的密码交换所需的。该文件必须采用PEM格式。该选项适用于使用
sha256_password
或caching_sha2_password
身份验证插件进行身份验证的客户端 。对于未使用其中一个插件进行身份验证的帐户,此选项将被忽略。如果不使用基于RSA的密码交换,它也会被忽略,例如当客户端使用安全连接连接到服务器时。如果 给出并指定了有效的公钥文件,则优先于 。
--server-public-key-path=
file_name
--get-server-public-key
因为
sha256_password
,只有在使用OpenSSL构建MySQL时,此选项才适用。有关这些
sha256_password
和caching_sha2_password
插件的信息,请参见 第6.5.1.2节“SHA-256可插入验证”和 第6.5.1.3节“缓存SHA-2可插入验证”。--shared-memory-base-name=
name
在Windows上使用共享内存名称,用于使用共享内存连接到本地服务器。该选项仅适用于服务器支持共享内存连接的情况。
--silent
,-s
静音模式。没有输出。
--socket=
,path
-S
path
连接到
localhost
要使用的Unix套接字文件,或在Windows上使用命名管道的名称。设置客户端会话的SQL模式。
开头的选项
--ssl
指定是否使用SSL连接到服务器,并指出在哪里可以找到SSL密钥和证书。请参见 第6.4.2节“加密连接的命令选项”。客户端允许的加密连接协议。该值是一个包含一个或多个协议名称的逗号分隔列表。可以为这个选项命名的协议取决于用于编译MySQL的SSL库。有关详细信息,请参见 第6.4.6节“加密连接协议和密码”。
--user=
,user_name
-u
user_name
连接到服务器时使用的MySQL用户名。
--verbose
,-v
详细模式。打印关于该程序的更多信息。该选项可以多次使用以增加信息量。
--version
,-V
显示版本信息并退出。本文由学什么技术好网翻译