您的位置:首页 > 数据库 > MySQL

10、MySQL 8.0参考手册 4.5.9 mysqlslap - 加载仿真客户端

2018-03-23 09:17 417 查看
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
, 
-?
显示帮助信息并退出。
--auto-generate-sql
, 
-a
如果没有在文件中提供或使用命令选项,则会自动生成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。
--commit=N
在提交之前要执行多少个语句。缺省值是0(不提交)。
--compress
, 
-C
压缩客户端和服务器之间发送的所有信息(如果两者均支持压缩)。
--concurrency=N
, 
-c N
要模拟的并行客户端的数量。
--create=value
包含用于创建表的语句的文件或字符串。
--create-schema=value
运行测试的模式。注意如果
--auto-generate-sql
 还提供了该 选项,则mysqlslap会在测试运行结束时删除该模式。为了避免这种情况,请使用该
--no-drop
选项。
--csv[=file_name
]
以逗号分隔值格式生成输出。输出到指定的文件,或者如果没有给出文件,则输出到标准输出。
--debug[=debug_options
]
, 
-# [debug_options
]编写一个调试日志。一个典型的 
debug_options
字符串是 。默认是 。 
d:t:o,file_name
d:t:o,/tmp/mysqlslap.trace

--debug-check
程序退出时打印一些调试信息。
--debug-info
, 
-T
在程序退出时打印调试信息和内存以及CPU使用情况统计信息。
--default-auth=plugin
关于使用客户端身份验证插件的提示。请参见第6.3.10节“可插入认证”
--defaults-extra-file=file_name
在全局选项文件之后读取此选项文件,但在用户选项文件之前(在Unix上)。如果文件不存在或无法访问,则会发生错误。 
file_name
如果作为相对路径名而非完整路径名给出,则相对于当前目录进行解释。
--defaults-file=file_name
只使用给定的选项文件。如果文件不存在或无法访问,则会发生错误。 
file_name
如果作为相对路径名而非完整路径名给出,则相对于当前目录进行解释。例外:即使 
--defaults-file
读取客户端程序
.mylogin.cnf

--defaults-group-suffix=str
不仅要阅读常用选项组,还要阅读具有常用名称和后缀的组 
str
。例如, mysqlslap通常读取 
[client]
和 
[mysqlslap]
组。如果
--defaults-group-suffix=_other
 给出该选项,mysqlslap也读取 
[client_other]
和 
[mysqlslap_other]
组。
--delimiter=str
, 
-F str
在文件或使用命令选项中提供的SQL语句中使用的分隔符。
--detach=N
在每个
N
语句后分离(关闭并重新打开)每个连接 。默认值为0(连接不分离)。
--enable-cleartext-plugin
启用
mysql_clear_password
明文身份验证插件。(请参见 第6.5.1.4节“客户端明文可插入验证”。)
--engine=engine_name
, 
-e engine_name
用于创建表的存储引擎。
--get-server-public-key
从服务器请求它用于基于密钥对的密码交换的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
运行测试的次数。
--login-path=name
.mylogin.cnf
登录路径文件中的指定登录路径读取选项 。阿 “ 登录路径 ”是含有指定要连接到哪个MySQL服务器和选项哪个帐户作为认证选项组。要创建或修改登录路径文件,请使用 mysql_config_editor实用程序。请参见 第4.6.7节“ mysql_config_editor - MySQL配置实用程序”
--no-drop
防止mysqlslap放弃在测试运行期间创建的任何模式。
--no-defaults
不要阅读任何选项文件。如果由于从选项文件读取未知选项而导致程序启动失败, 
--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

--number-of-queries=N
限制每个客户端大约这么多查询。查询计数考虑到语句分隔符。例如,如果您按如下方式调用mysqlslap
;
则会识别分隔符,以便查询字符串的每个实例都计为两个查询。结果,插入5行(不是10)。
shell> mysqlslap --delimiter=";" --number-of-queries=10
--query="use test;insert into t values(null)"

--only-print
不要连接到数据库。mysqlslap 只打印它会做的事情。
--password[=password
]
, 
-p[password
]连接到服务器时使用的密码。如果使用short option form(
-p
), 则在选项和密码之间不能有空格。如果您省略命令行中
password
--password
或 
-p
选项后面的 值 ,mysqlslap会提示输入一个值。在命令行中指定密码应被视为不安全。请参见 第6.1.2.1节“密码安全的最终用户指南”。您可以使用选项文件来避免在命令行上输入密码。
--pipe
, 
-W
在Windows上,使用命名管道连接到服务器。该选项仅适用于服务器支持命名管道连接的情况。
--plugin-dir=dir_name
在其中查找插件的目录。如果该
--default-auth
选项用于指定身份验证插件,但是 mysqlslap未找到该选项,请指定此选项 。请参见 第6.3.10节“可插入认证”
--port=port_num
, 
-P port_num
用于连接的TCP / IP端口号。
--post-query=value
包含要在测试完成后执行的语句的文件或字符串。该执行不计入计时目的。
--post-system=str
system()
 测试完成后 要执行的字符串。该执行不计入计时目的。
--pre-query=value
包含要在运行测试之前执行的语句的文件或字符串。该执行不计入计时目的。
--pre-system=str
system()
 在运行测试之前 要执行的字符串。该执行不计入计时目的。
--print-defaults
打印程序名称以及从选项文件中获取的所有选项。
--protocol={TCP|SOCKET|PIPE|MEMORY}
用于连接到服务器的连接协议。当其他连接参数通常会导致使用的协议不是您想要的协议时,这很有用。有关允许值的详细信息,请参见 第4.2.2节“连接到MySQL服务器”
--query=value
, 
-q value
包含
SELECT
用于检索数据的语句的文件或字符串 。
--secure-auth
这个选项在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-mode=mode
设置客户端会话的SQL模式。
--ssl*
开头的选项 
--ssl
指定是否使用SSL连接到服务器,并指出在哪里可以找到SSL密钥和证书。请参见 第6.4.2节“加密连接的命令选项”
--tls-version=protocol_list
客户端允许的加密连接协议。该值是一个包含一个或多个协议名称的逗号分隔列表。可以为这个选项命名的协议取决于用于编译MySQL的SSL库。有关详细信息,请参见 第6.4.6节“加密连接协议和密码”
--user=user_name
, 
-u user_name
连接到服务器时使用的MySQL用户名。
--verbose
, 
-v
详细模式。打印关于该程序的更多信息。该选项可以多次使用以增加信息量。
--version
, 
-V
显示版本信息并退出。本文由学什么技术好网翻译
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: