MySQL服务器维护许多配置其操作的系统变量。每个系统变量都有一个默认值。可以在服务器启动时使用命令行或选项文件中的选项设置系统变量。可以使用以下SET 语句在运行时动态更改其中的大多数内容,该 语句使您无需停止并重新启动服务器即可修改服务器的操作。您也可以在表达式中使用系统变量值。
设置全局系统变量运行时值通常需要SYSTEM_VARIABLES_ADMIN 特权(或不建议使用的SUPER 特权)。设置会话系统运行时变量值通常不需要特殊特权,并且任何用户都可以完成,尽管有例外。有关更多信息,请参见 第5.1.9.1节“系统变量特权”
有几种方法可以查看系统变量的名称和值:
要查看服务器将基于其编译后的默认值以及它读取的所有选项文件使用的值,请使用以下命令:
mysqld --verbose --help
要仅根据服务器的编译缺省值查看服务器将使用的值,而忽略任何选项文件中的设置,请使用以下命令:
mysqld --no-defaults --verbose --help
要查看正在运行的服务器使用的当前值,请使用该 SHOW VARIABLES语句或Performance Schema系统变量表。请参见 第26.12.14节“性能架构系统变量表”。
本节提供每个系统变量的描述。有关系统变量摘要表,请参见 第5.1.5节“服务器系统变量参考”。有关操纵系统变量的更多信息,请参见 第5.1.9节“使用系统变量”。
有关其他系统变量信息,请参见以下部分:
第5.1.9节“使用系统变量”讨论了设置和显示系统变量值的语法。
第5.1.9.2节“动态系统变量”列出了可以在运行时设置的变量。
有关调整系统变量的信息,请参见 第5.1.1节“配置服务器”。
第15.14节“ InnoDB启动选项和系统变量”列出了 InnoDB系统变量。
第22.3.3.9.2节“ NDB群集系统变量”列出了特定于NDB群集的系统变量。
有关特定于复制的服务器系统变量的信息,请参见第17.1.6节“复制和二进制日志记录选项和变量”。
注意
以下某些变量描述涉及 “ 启用 ”或“ 禁用 ”变量。可以SET 通过将其设置为ON或 来启用这些变量1,或者通过将其设置为OFF或来禁用 这些变量 0。布尔变量可以在启动时被设置为的值 ON,TRUE, OFF,和FALSE(不区分大小写),以及1和 0。请参见第4.2.2.4节“程序选项修饰符”。
一些系统变量控制缓冲区或高速缓存的大小。对于给定的缓冲区,服务器可能需要分配内部数据结构。这些结构通常是从分配给缓冲区的总内存中分配的,所需的空间量可能取决于平台。这意味着,当您将值分配给控制缓冲区大小的系统变量时,实际可用空间量可能与分配的值不同。在某些情况下,金额可能小于分配的值。服务器也可能向上调整一个值。例如,如果您为最小值为1024的变量赋值为0,则服务器会将其设置为1024。
除非另有说明,否则缓冲区大小,长度和堆栈大小的值以字节为单位。
一些系统变量采用文件名值。除非另有说明,否则默认文件位置是数据目录(如果该值是相对路径名)。要明确指定位置,请使用绝对路径名。假设数据目录为 /var/mysql/data。如果将文件值变量指定为相对路径名,则它将位于下 /var/mysql/data。如果值是绝对路径名,则其位置由路径名指定。
secondary_engine_cost_threshold
属性 值
介绍了 8.0.16
系统变量 secondary_engine_cost_threshold
范围 届会
动态 是
SET_VAR 提示适用 是
类型 数字
默认值 100000.000000
最低值 0
最大值 DBL_MAX (maximum double value)
供将来使用。
schema_definition_cache
属性 值
命令行格式 --schema-definition-cache=#
系统变量 schema_definition_cache
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 256
最低值 256
最大值 524288
为使用和未使用的架构定义对象的数量定义一个限制,该限制可以保留在字典对象缓存中。
仅当使用的数量小于所定义的容量时,才会将未使用的架构定义对象保留在字典对象缓存中 schema_definition_cache。
设置0意味着架构定义对象仅在使用时才保留在字典对象缓存中。
有关更多信息,请参见 第14.4节“字典对象缓存”。
secure_file_priv
属性 值
命令行格式 --secure-file-priv=dir_name
系统变量 secure_file_priv
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 串
默认值 platform specific
有效值
empty string
dirname
NULL
此变量用于限制数据导入和导出操作的效果,例如由LOAD DATAand SELECT … INTO OUTFILE语句和 LOAD_FILE()函数执行的操作 。只有具有FILE特权的用户才能进行这些操作 。
secure_file_priv 可以设置如下:
如果为空,则该变量无效。这不是一个安全的设置。
如果设置为目录名,则服务器将限制导入和导出操作,使其仅适用于该目录中的文件。该目录必须存在;服务器将不会创建它。
如果设置为NULL,服务器将禁用导入和导出操作。
缺省值是特定于平台的,并且取决于CMake选项的值,如下表所示。如果要从源代码构建,则要明确指定默认 值,请使用 CMake选项。 INSTALL_LAYOUT secure_file_privINSTALL_SECURE_FILE_PRIVDIR
INSTALL_LAYOUT 值 预设secure_file_priv值
STANDALONE 空的
DEB,RPM,SVR4 /var/lib/mysql-files
除此以外 mysql-files在CMAKE_INSTALL_PREFIX价值之下
服务器secure_file_priv在启动时检查值, 如果该值不安全,则将警告写入错误日志。如果非NULL值是空的,或者该值是数据目录或它的子目录,或者是所有用户都可以访问的目录,则它被认为是不安全的。如果secure_file_priv将设置为不存在的路径,则服务器将错误消息写入错误日志并退出。
session_track_gtids
属性 值
命令行格式 --session-track-gtids=value
系统变量 session_track_gtids
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 列举
默认值 OFF
有效值
OFF
OWN_GTID
ALL_GTIDS
控制服务器是否在当前会话中跟踪GTID,并将其返回给客户端。根据变量值,在执行每个事务结束时,跟踪程序将捕获服务器GTID,并将其返回给客户端。这些 session_track_gtids值是允许的:
OFF:跟踪器未收集任何GTID。这是默认值。
OWN_GTID:跟踪器收集成功提交的读/写事务生成的GTID。
ALL_GTIDS:跟踪器gtid_executed在当前事务提交时收集系统变量中的所有GTID ,而不管事务是读/写还是只读。
session_track_gtids 不能在事务上下文中设置。
有关会话状态跟踪的更多信息,请参见 第5.1.17节“客户端会话状态更改的服务器跟踪”。
session_track_schema
属性 值
命令行格式 --session-track-schema[={OFF|ON}]
系统变量 session_track_schema
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 ON
控制服务器是否跟踪在当前会话中设置默认架构(数据库)的时间,并通知客户端使架构名称可用。
如果启用了架构名称跟踪器,则即使新的架构名称与旧的架构名称相同,每次设置默认架构也会发生名称通知。
有关会话状态跟踪的更多信息,请参见 第5.1.17节“客户端会话状态更改的服务器跟踪”。
session_track_state_change
属性 值
命令行格式 --session-track-state-change[={OFF|ON}]
系统变量 session_track_state_change
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 OFF
控制服务器是否跟踪对当前会话状态的更改,并在发生状态更改时通知客户端。可以报告客户端会话状态的以下属性的更改:
默认架构(数据库)。
系统变量的特定于会话的值。
用户定义的变量。
临时表。
准备好的语句。
如果启用了会话状态跟踪器,则即使涉及新的属性值与旧的属性值相同,也会针对涉及跟踪的会话属性的每个更改发生通知。例如,将用户定义的变量设置为其当前值将导致通知。
该 session_track_state_change 变量仅控制何时发生更改的通知,而不控制更改的通知。例如,当设置了默认模式或分配了跟踪的会话系统变量时,就会发生状态更改通知,但该通知不包括模式名称或变量值。要接收模式名称或会话系统变量值的通知 ,请分别使用 session_track_schema或 session_track_system_variables系统变量。
注意
为session_track_state_change 自身分配值 不被视为状态更改,因此也不会这样报告。但是,如果其名称列在的值中,则对其的 session_track_system_variables任何分配都会导致通知新值。
有关会话状态跟踪的更多信息,请参见 第5.1.17节“客户端会话状态更改的服务器跟踪”。
session_track_system_variables
属性 值
命令行格式 --session-track-system-variables=#
系统变量 session_track_system_variables
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 串
默认值 time_zone, autocommit, character_set_client, character_set_results, character_set_connection
控制服务器是否跟踪对会话系统变量的分配,并通知客户端每个分配的变量的名称和值。变量值是用逗号分隔的变量列表,可以跟踪其分配。默认情况下,通知的启用 time_zone, autocommit, character_set_client, character_set_results,和 character_set_connection。(后三个变量是受的影响 SET NAMES。)
该特殊值*使服务器跟踪对所有会话变量的分配。如果给定,则此值必须由其自身指定,而没有特定的系统变量名称。
要禁用会话变量分配的通知,请设置 session_track_system_variables 为空字符串。
如果启用了会话系统变量跟踪,那么即使新值与旧值相同,也会对所有分配给跟踪会话变量的通知进行通知。
有关会话状态跟踪的更多信息,请参见 第5.1.17节“客户端会话状态更改的服务器跟踪”。
session_track_transaction_info
属性 值
命令行格式 --session-track-transaction-info=value
系统变量 session_track_transaction_info
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 列举
默认值 OFF
有效值
OFF
STATE
CHARACTERISTICS
控制服务器是否跟踪当前会话中事务的状态和特征,并通知客户端使此信息可用。这些 session_track_transaction_info 值是允许的:
OFF:禁用事务状态跟踪。这是默认值。
STATE:启用事务状态跟踪而没有特征跟踪。状态跟踪使客户端能够确定事务是否正在进行中,以及是否可以将其移至其他会话而不回滚。
CHARACTERISTICS:启用事务状态跟踪,包括特征跟踪。通过特征跟踪,客户端可以确定如何在另一个会话中重新启动事务,以使其具有与原始会话相同的特征。以下特征与此有关:
ISOLATION LEVEL
READ ONLY
READ WRITE
WITH CONSISTENT SNAPSHOT
为了使客户安全地将事务重定位到另一个会话,它不仅必须跟踪事务状态,还必须跟踪事务特征。此外,客户端必须跟踪 transaction_isolation和 transaction_read_only系统变量,才能正确确定会话默认值。(要跟踪这些变量,请在session_track_system_variables 系统变量的值中列出它们 。)
有关会话状态跟踪的更多信息,请参见 第5.1.17节“客户端会话状态更改的服务器跟踪”。
sha256_password_auto_generate_rsa_keys
属性 值
命令行格式 --sha256-password-auto-generate-rsa-keys[={OFF|ON}]
系统变量 sha256_password_auto_generate_rsa_keys
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 布尔型
默认值 ON
服务器使用此变量来确定是否自动生成数据目录中的RSA私钥/公钥对文件(如果尚不存在)。
在启动时,服务器会自动生成数据目录RSA公钥/私钥对的文件,如果所有这些条件为真: sha256_password_auto_generate_rsa_keys 或 caching_sha2_password_auto_generate_rsa_keys 系统变量启用; 未指定RSA选项;数据目录中缺少RSA文件。这些密钥对文件可通过RSA sha256_password或 caching_sha2_password插件认证的帐户,通过未加密的连接使用RSA进行安全密码交换 ;请参见 第6.4.1.3节“ SHA-256可插拔身份验证”和 第6.4.1.2节“缓存SHA-2可插拔身份验证”。
有关RSA文件自动生成的更多信息,包括文件名和特征,请参见 第6.3.3.1节“使用MySQL创建SSL和RSA证书和密钥”
该auto_generate_certs 系统变量相关,但SSL证书,并需要使用SSL安全连接密钥文件的控制自动生成。
sha256_password_private_key_path
属性 值
命令行格式 --sha256-password-private-key-path=file_name
系统变量 sha256_password_private_key_path
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 文件名
默认值 private_key.pem
该变量的值是sha256_password 身份验证插件的RSA私钥文件的路径名。如果文件被命名为相对路径,则会相对于服务器数据目录进行解释。该文件必须为PEM格式。
重要
由于此文件存储私钥,因此应限制其访问模式,以便只有MySQL服务器才能读取它。
有关的信息sha256_password,请参见 第6.4.1.3节“ SHA-256可插拔身份验证”。
sha256_password_proxy_users
属性 值
命令行格式 --sha256-password-proxy-users[={OFF|ON}]
系统变量 sha256_password_proxy_users
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 OFF
此变量控制sha256_password内置身份验证插件是否 支持代理用户。除非check_proxy_users启用系统变量,否则它无效 。有关用户代理的信息,请参见 第6.2.18节“代理用户”。
sha256_password_public_key_path
属性 值
命令行格式 --sha256-password-public-key-path=file_name
系统变量 sha256_password_public_key_path
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 文件名
默认值 public_key.pem
该变量的值是sha256_password 身份验证插件的RSA公钥文件的路径名。如果文件被命名为相对路径,则会相对于服务器数据目录进行解释。该文件必须为PEM格式。由于此文件存储公用密钥,因此可以将副本自由分发给客户端用户。(在使用RSA密码加密连接到服务器时,明确指定公钥的客户端必须使用与服务器使用的相同的公钥。)
有关的信息sha256_password,包括有关客户端如何指定RSA公钥的信息,请参见第6.4.1.3节“ SHA-256可插拔身份验证”。
shared_memory
属性 值
命令行格式 --shared-memory[={OFF|ON}]
系统变量 shared_memory
范围 全球
动态 没有
SET_VAR 提示适用 没有
平台特定 视窗
类型 布尔型
默认值 OFF
(仅Windows。)服务器是否允许共享内存连接。
shared_memory_base_name
属性 值
命令行格式 --shared-memory-base-name=name
系统变量 shared_memory_base_name
范围 全球
动态 没有
SET_VAR 提示适用 没有
平台特定 视窗
类型 串
默认值 MYSQL
(仅Windows。)用于共享内存连接的共享内存的名称。在单个物理计算机上运行多个MySQL实例时,这很有用。默认名称是MYSQL。名称区分大小写。
仅当在shared_memory启用系统变量以支持共享内存连接的情况下启动服务器时,此变量才适用 。
show_create_table_skip_secondary_engine
属性 值
命令行格式 --show-create-table-skip-secondary-engine[={OFF|ON}]
介绍了 8.0.18
系统变量 show_create_table_skip_secondary_engine
范围 届会
动态 是
SET_VAR 提示适用 是
类型 布尔型
默认值 OFF
启用 show_create_table_skip_secondary_engine 会使SECONDARY ENGINE子句从SHOW CREATE TABLE 输出以及mysqldump实用程序CREATE TABLE 转储的语句中排除。
mysqldump提供了该 --show-create-skip-secondary-engine 选项。指定后,它将show_create_table_skip_secondary_engine 在转储操作期间启用 系统变量。
在不支持该 变量的MySQL 8.0.18之前的版本中 尝试使用该选项进行 mysqldump操作 会导致错误。 --show-create-skip-secondary-engineshow_create_table_skip_secondary_engine
show_create_table_verbosity
属性 值
命令行格式 --show-create-table-verbosity[={OFF|ON}]
系统变量 show_create_table_verbosity
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 OFF
SHOW CREATE TABLEROW_FORMAT如果行格式是默认格式,通常不会显示表格选项。启用此变量将导致SHOW CREATE TABLE显示ROW_FORMAT,无论它是否是默认格式。
show_old_temporals
属性 值
命令行格式 --show-old-temporals[={OFF|ON}]
不推荐使用 是
系统变量 show_old_temporals
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 OFF
是否SHOW CREATE TABLE 输出包括注释来标记时间列发现在预5.6.4格式(TIME, DATETIME,和 TIMESTAMP列不为小数精度秒支持)。默认情况下禁用此变量。如果启用,SHOW CREATE TABLE输出如下所示:
CREATE TABLE mytbl (
ts timestamp /* 5.5 binary format / NOT NULL DEFAULT CURRENT_TIMESTAMP,
dt datetime / 5.5 binary format / DEFAULT NULL,
t time / 5.5 binary format */ DEFAULT NULL
) DEFAULT CHARSET=utf8mb4
表COLUMN_TYPE列的 输出INFORMATION_SCHEMA.COLUMNS受到类似的影响。
不建议使用此变量,并将在将来的MySQL版本中将其删除。
skip_external_locking
属性 值
命令行格式 --skip-external-locking[={OFF|ON}]
系统变量 skip_external_locking
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 布尔型
默认值 ON
这是OFF如果mysqld的 使用外部锁定(锁定系统),ON 如果外部锁定被禁用。这仅影响 MyISAM表访问。
该变量由–external-locking或 --skip-external-locking 选项设置 。默认情况下,外部锁定是禁用的。
外部锁定仅影响 MyISAM表访问。有关更多信息,包括可以使用和不能使用的条件,请参见第8.11.5节“外部锁定”。
skip_name_resolve
属性 值
命令行格式 --skip-name-resolve[={OFF|ON}]
系统变量 skip_name_resolve
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 布尔型
默认值 OFF
检查客户端连接时是否解析主机名。如果此变量为OFF,则 mysqld在检查客户端连接时解析主机名。如果为ON,则 mysqld仅使用IP编号;否则为。在这种情况下,Host授权表中的所有列值都必须是IP地址。请参见第5.1.12.3节“ DNS查找和主机缓存”。
根据系统的网络配置和Host帐户的 值,客户端可能需要使用显式–host选项(例如 --host=127.0.0.1或) 进行连接 --host=::1。
An attempt to connect to the host 127.0.0.1 normally resolves to the localhost account. However, this fails if the server is run with skip_name_resolve enabled. If you plan to do that, make sure an account exists that can accept a connection. For example, to be able to connect as root using --host=127.0.0.1 or --host=::1, create these accounts:
CREATE USER ‘root’@‘127.0.0.1’ IDENTIFIED BY ‘root-password’;
CREATE USER ‘root’@’::1’ IDENTIFIED BY ‘root-password’;
skip_networking
Property Value
Command-Line Format --skip-networking[={OFF|ON}]
System Variable skip_networking
Scope Global
Dynamic No
SET_VAR Hint Applies No
Type Boolean
Default Value OFF
This variable controls whether the server permits TCP/IP connections. By default, it is disabled (permit TCP connections). If enabled, the server permits only local (non-TCP/IP) connections and all interaction with mysqld must be made using named pipes or shared memory (on Windows) or Unix socket files (on Unix). This option is highly recommended for systems where only local clients are permitted. See Section 5.1.12.3, “DNS Lookups and the Host Cache”.
Because starting the server with --skip-grant-tables disables authentication checks, the server also disables remote connections in that case by enabling skip_networking.
skip_show_database
Property Value
Command-Line Format --skip-show-database
System Variable skip_show_database
Scope Global
Dynamic No
SET_VAR Hint Applies No
This prevents people from using the SHOW DATABASES statement if they do not have the SHOW DATABASES privilege. This can improve security if you have concerns about users being able to see databases belonging to other users. Its effect depends on the SHOW DATABASES privilege: If the variable value is ON, the SHOW DATABASES statement is permitted only to users who have the SHOW DATABASES privilege, and the statement displays all database names. If the value is OFF, SHOW DATABASES is permitted to all users, but displays the names of only those databases for which the user has the SHOW DATABASES or other privilege.
Caution
因为任何静态全局特权都被认为是所有数据库的特权,所以任何静态全局特权都使用户可以使用SHOW DATABASES或通过检查的SCHEMATA表 来查看所有数据库名称 INFORMATION_SCHEMA,但在数据库级别受到部分吊销限制的数据库除外。
slow_launch_time
属性 值
命令行格式 --slow-launch-time=#
系统变量 slow_launch_time
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 2
如果创建线程花费的时间超过了许多秒,则服务器将增加 Slow_launch_threads状态变量。
slow_query_log
属性 值
命令行格式 --slow-query-log[={OFF|ON}]
系统变量 slow_query_log
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 OFF
是否启用慢速查询日志。该值可以是0(或OFF)以禁用日志,也可以是 1(或 ON)以启用日志。日志输出的目的地由log_output系统变量控制 ;如果该值为NONE,即使启用了日志,也不会写入任何日志条目。
“ 慢 ”由long_query_time变量的值确定 。请参见 第5.4.5节“慢查询日志”。
slow_query_log_file
属性 值
命令行格式 --slow-query-log-file=file_name
系统变量 slow_query_log_file
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 文件名
默认值 host_name-slow.log
慢查询日志文件的名称。默认值为 host_name-slow.log,但可以使用该–slow_query_log_file选项更改初始值 。
socket
属性 值
命令行格式 --socket={file_name|pipe_name}
系统变量 socket
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 串
默认值(其他) /tmp/mysql.sock
预设值(Windows) MySQL
在Unix平台上,此变量是用于本地客户端连接的套接字文件的名称。默认值为 /tmp/mysql.sock。(对于某些发行格式,目录可能有所不同,例如 /var/lib/mysqlRPM。)
在Windows上,此变量是用于本地客户端连接的命名管道的名称。默认值为 MySQL(不区分大小写)。
sort_buffer_size
属性 值
命令行格式 --sort-buffer-size=#
系统变量 sort_buffer_size
范围 全球会议
动态 是
SET_VAR 提示适用 是
类型 整数
默认值 262144
最低值 32768
最大值(其他64位平台) 18446744073709551615
最大值(其他32位平台) 4294967295
最大值(Windows) 4294967295
每个必须执行排序的会话都会分配此大小的缓冲区。sort_buffer_size 并非特定于任何存储引擎,而是以一般方式进行优化。至少该 sort_buffer_size值必须足够大以在排序缓冲区中容纳15个元组。另外,增加的值 max_sort_length可能需要增加的值 sort_buffer_size。有关更多信息,请参见第8.2.1.16节“按优化排序”
如果您看到Sort_merge_passes每秒很多的 SHOW GLOBAL STATUS输出,则可以考虑增加该 sort_buffer_size值以加快速度ORDER BY或GROUP BY使用查询优化或改进索引无法改善的操作。
优化器尝试计算出需要多少空间,但可以分配更多空间(最大限制)。将其设置为大于全局所需的大小将减慢大多数此类查询的速度。最好将其增加为会话设置,并且仅适用于需要更大大小的会话。在Linux上,阈值分别为256KB和2MB,其中较大的值可能会显着减慢内存分配,因此您应考虑保持低于这些值之一。尝试找到最适合您的工作量的价值。请参见 第B.4.3.5节“ MySQL在哪里存储临时文件”。
的最大允许设置为 sort_buffer_size4GB-1。对于64位平台,允许使用更大的值(64位Windows除外,在Windows中,较大的值会被警告截断为4GB-1)。
sql_auto_is_null
属性 值
系统变量 sql_auto_is_null
范围 全球会议
动态 是
SET_VAR 提示适用 是
类型 布尔型
默认值 OFF
如果启用了此变量,则在成功插入自动生成的AUTO_INCREMENT值的语句之后 ,可以通过发出以下形式的语句来找到该值:
SELECT * FROM tbl_name WHERE auto_col IS NULL
如果该语句返回一行,则返回的值与调用该LAST_INSERT_ID()函数的值相同 。有关详细信息,包括在多行插入之后的返回值,请参见第12.15节“信息函数”。如果没有AUTO_INCREMENT成功插入任何 值,则该SELECT语句不返回任何行。
AUTO_INCREMENT通过使用IS NULL比较来 检索值 的行为 被某些ODBC程序(例如Access)所采用。请参阅 获取自动增量值。可以通过设置sql_auto_is_null为 禁用此行为 OFF。
在此之前的MySQL 8.0.16,改造,以 执行该语句时,才被执行,这样的值 执行期间确定查询是否转化。在MySQL 8.0.16和更高版本中,转换是在语句准备期间执行的。 WHERE auto_col IS NULLWHERE auto_col = LAST_INSERT_ID()sql_auto_is_null
默认值 sql_auto_is_null是 OFF。
sql_big_selects
属性 值
系统变量 sql_big_selects
范围 全球会议
动态 是
SET_VAR 提示适用 是
类型 布尔型
默认值 ON
If set to OFF, MySQL aborts SELECT statements that are likely to take a very long time to execute (that is, statements for which the optimizer estimates that the number of examined rows exceeds the value of max_join_size). This is useful when an inadvisable WHERE statement has been issued. The default value for a new connection is ON, which permits all SELECT statements.
If you set the max_join_size system variable to a value other than DEFAULT, sql_big_selects is set to OFF.
sql_buffer_result
Property Value
System Variable sql_buffer_result
Scope Global, Session
Dynamic Yes
SET_VAR Hint Applies Yes
Type Boolean
Default Value OFF
如果启用,则将 语句的sql_buffer_result 结果强制SELECT放入临时表中。这有助于MySQL尽早释放表锁,并且在将结果发送到客户端花费很长时间的情况下会很有用。默认值为OFF。
sql_log_off
属性 值
系统变量 sql_log_off
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 OFF
有效值
OFF (启用日志记录)
ON (禁用日志记录)
此变量控制是否为当前会话禁用对常规查询日志的日志记录(假设常规查询日志本身已启用)。默认值为 OFF(即启用日志记录)。要为当前会话禁用或启用常规查询日志记录,请将会话sql_log_off 变量设置为ON或OFF。
设置此系统变量的会话值是受限制的操作。会话用户必须具有足以设置受限会话变量的特权。请参见 第5.1.9.1节“系统变量特权”。
sql_mode
属性 值
命令行格式 --sql-mode=name
系统变量 sql_mode
范围 全球会议
动态 是
SET_VAR 提示适用 是
类型 组
默认值 ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION
有效值
ALLOW_INVALID_DATES
ANSI_QUOTES
ERROR_FOR_DIVISION_BY_ZERO
HIGH_NOT_PRECEDENCE
IGNORE_SPACE
NO_AUTO_VALUE_ON_ZERO
NO_BACKSLASH_ESCAPES
NO_DIR_IN_CREATE
NO_ENGINE_SUBSTITUTION
NO_UNSIGNED_SUBTRACTION
NO_ZERO_DATE
NO_ZERO_IN_DATE
ONLY_FULL_GROUP_BY
PAD_CHAR_TO_FULL_LENGTH
PIPES_AS_CONCAT
REAL_AS_FLOAT
STRICT_ALL_TABLES
STRICT_TRANS_TABLES
TIME_TRUNCATE_FRACTIONAL
当前服务器的SQL模式,可以动态设置。有关详细信息,请参见第5.1.11节“服务器SQL模式”。
注意
MySQL安装程序可能会在安装过程中配置SQL模式。
如果SQL模式不同于默认模式或期望的模式,请检查服务器在启动时读取的选项文件中的设置。
sql_notes
属性 值
系统变量 sql_notes
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 ON
如果启用(默认设置),则Note级别增量诊断 并由 warning_count服务器记录下来。如果禁用,则Note诊断不会增加warning_count,服务器也不会记录它们。mysqldump 包含用于禁用此变量的输出,以便重新加载转储文件不会对不会影响重新加载操作完整性的事件产生警告。
sql_quote_show_create
属性 值
系统变量 sql_quote_show_create
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 ON
如果启用(默认值),则服务器引用SHOW CREATE TABLE和 SHOW CREATE DATABASE 语句的标识符 。如果禁用,则引用被禁用。默认情况下启用此选项,以便复制适用于需要引用的标识符。请参见第13.7.7.10节“ SHOW CREATE TABLE语句”和第13.7.7.6节“ SHOW CREATE DATABASE语句”。
sql_require_primary_key
属性 值
命令行格式 --sql-require-primary-key[={OFF|ON}]
介绍了 8.0.13
系统变量 sql_require_primary_key
范围 全球会议
动态 是
SET_VAR 提示适用 是
类型 布尔型
默认值 OFF
创建新表或更改现有表结构的语句是否强制要求表具有主键。
设置此系统变量的会话值是受限制的操作。会话用户必须具有足以设置受限会话变量的特权。请参见 第5.1.9.1节“系统变量特权”。
启用此变量有助于避免表没有主键时可能发生的基于行的复制中的性能问题。假设一个表没有主键,而更新或删除修改了多行。在主服务器上,可以使用单个表扫描来执行此操作,但是在使用基于行的复制进行复制时,将导致在从属服务器上针对每一行进行表扫描。使用主键时,不会发生这些表扫描。
sql_require_primary_key 适用于基本表和TEMPORARY 表,并且对其值的更改将复制到从属服务器。从MySQL 8.0.18开始,它仅适用于可以参与复制的存储引擎。
启用后, sql_require_primary_key具有以下效果:
尝试创建没有主键的新表失败并显示错误。这包括CREATE TABLE … LIKE。它还包含CREATE TABLE … SELECT,除非该CREATE TABLE部分包含主键定义。
尝试从现有表中删除主键失败并显示错误,但ALTER TABLE允许在同一语句中删除主键并添加主键的例外 。
即使表还包含UNIQUE NOT NULL索引,删除主键也将失败。
尝试导入没有主键的表失败,并显示错误。
该 语句的REQUIRE_TABLE_PRIMARY_KEY_CHECK选项CHANGE MASTER TO使复制从属可以选择自己的策略来进行主键检查。如果将ON复制通道的选项设置 为,则从属服务器始终 在复制操作中使用系统变量的值ON,这 sql_require_primary_key需要主键。当选项被设置为OFF,从始终使用值OFF用于 sql_require_primary_key 在复制操作的系统变量,以使主密钥从不需要,即使主所需要的一个。当REQUIRE_TABLE_PRIMARY_KEY_CHECK选项设置为STREAM,这是默认设置,从属服务器将为每个事务使用从主服务器复制的任何值。使用该 选项的STREAM设置REQUIRE_TABLE_PRIMARY_KEY_CHECK,如果复制通道正在使用特权检查,则该PRIVILEGE_CHECKS_USER帐户需要足够的特权来设置受限制的会话变量,以便它可以为sql_require_primary_key 系统变量设置会话值 。使用ON或 OFF设置,该帐户不需要这些特权。有关更多信息,请参见 第17.3.3节“复制特权检查”。
sql_safe_updates
属性 值
系统变量 sql_safe_updates
范围 全球会议
动态 是
SET_VAR 提示适用 是
类型 布尔型
默认值 OFF
如果这个变量被启用, UPDATE并且 DELETE不中使用的关键语句WHERE条款或 LIMIT条款产生错误。这样就可以捕获UPDATE并 DELETE声明未正确使用键的地方,这可能会更改或删除大量行。默认值为 OFF。
对于mysql客户端, sql_safe_updates可以使用–safe-updates选项启用 。有关更多信息,请参见使用安全更新模式(–safe-updates)。
sql_select_limit
属性 值
系统变量 sql_select_limit
范围 全球会议
动态 是
SET_VAR 提示适用 是
类型 整数
从SELECT语句返回的最大行数 。有关更多信息,请参见使用安全更新模式(–safe-updates)。
新连接的默认值是服务器每个表允许的最大行数。典型的默认值为(2 32)-1或(2 64)-1。如果您更改了限制,则可以通过分配值来恢复默认值DEFAULT。
如果a SELECT有 LIMIT子句,LIMIT 则优先于的值 sql_select_limit。
sql_warnings
属性 值
系统变量 sql_warnings
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 OFF
INSERT如果发生警告, 此变量控制单行语句是否 生成信息字符串。默认值为 OFF。将该值设置ON 为产生一个信息字符串。
ssl_ca
属性 值
命令行格式 --ssl-ca=file_name
系统变量 ssl_ca
范围 全球
动态(≥8.0.16) 是
动态(≤8.0.15) 没有
SET_VAR 提示适用 没有
类型 文件名
默认值 NULL
证书颁发机构(CA)证书文件的路径名,采用PEM格式。该文件包含受信任的SSL证书颁发机构列表。
从MySQL 8.0.16开始,此变量是动态的,可以在运行时进行修改以影响服务器用于新连接的TSL上下文。请参阅 服务器端运行时配置和监视加密连接。在MySQL 8.0.16之前,只能在服务器启动时设置此变量。
ssl_capath
属性 值
命令行格式 --ssl-capath=dir_name
系统变量 ssl_capath
范围 全球
动态(≥8.0.16) 是
动态(≤8.0.15) 没有
SET_VAR 提示适用 没有
类型 目录名
默认值 NULL
包含PEM格式的受信任SSL证书颁发机构(CA)证书文件的目录的路径名。
从MySQL 8.0.16开始,此变量是动态的,可以在运行时进行修改以影响服务器用于新连接的TSL上下文。请参阅 服务器端运行时配置和监视加密连接。在MySQL 8.0.16之前,只能在服务器启动时设置此变量。
ssl_cert
属性 值
命令行格式 --ssl-cert=file_name
系统变量 ssl_cert
范围 全球
动态(≥8.0.16) 是
动态(≤8.0.15) 没有
SET_VAR 提示适用 没有
类型 文件名
默认值 NULL
服务器SSL公钥证书文件的路径名(PEM格式)。
如果服务器启动时 ssl_cert设置为使用任何受限密码或密码类别的证书,则服务器将禁用对加密连接的支持。有关密码限制的信息,请参阅“ 连接密码配置”。
从MySQL 8.0.16开始,此变量是动态的,可以在运行时进行修改以影响服务器用于新连接的TSL上下文。请参阅 服务器端运行时配置和监视加密连接。在MySQL 8.0.16之前,只能在服务器启动时设置此变量。
ssl_cipher
属性 值
命令行格式 --ssl-cipher=name
系统变量 ssl_cipher
范围 全球
动态(≥8.0.16) 是
动态(≤8.0.15) 没有
SET_VAR 提示适用 没有
类型 串
默认值 NULL
直到TLSv1.2为止使用TLS协议的连接的允许加密密码的列表。如果列表中不支持密码,则使用这些TLS协议的加密连接将不起作用。
为了获得最大的可移植性,密码列表应该是一个或多个密码名称的列表,并用冒号分隔。例子:
[mysqld]
ssl_cipher=“AES128-SHA”
ssl_cipher=“DHE-RSA-AES128-GCM-SHA256:AES128-SHA”
OpenSSL支持https://www.openssl.org/docs/manmaster/man1/ciphers.html上的OpenSSL文档中描述的用于指定密码的语法 。
有关MySQL支持的加密密码的信息,请参见第6.3.2节“加密的连接TLS协议和密码”。
从MySQL 8.0.16开始,此变量是动态的,可以在运行时进行修改以影响服务器用于新连接的TSL上下文。请参阅 服务器端运行时配置和监视加密连接。在MySQL 8.0.16之前,只能在服务器启动时设置此变量。
ssl_crl
属性 值
命令行格式 --ssl-crl=file_name
系统变量 ssl_crl
范围 全球
动态(≥8.0.16) 是
动态(≤8.0.15) 没有
SET_VAR 提示适用 没有
类型 文件名
默认值 NULL
包含PEM格式的证书吊销列表的文件的路径名。
从MySQL 8.0.16开始,此变量是动态的,可以在运行时进行修改以影响服务器用于新连接的TSL上下文。请参阅 服务器端运行时配置和监视加密连接。在MySQL 8.0.16之前,只能在服务器启动时设置此变量。
ssl_crlpath
属性 值
命令行格式 --ssl-crlpath=dir_name
系统变量 ssl_crlpath
范围 全球
动态(≥8.0.16) 是
动态(≤8.0.15) 没有
SET_VAR 提示适用 没有
类型 目录名
默认值 NULL
包含PEM格式的证书吊销列表文件的目录路径。
从MySQL 8.0.16开始,此变量是动态的,可以在运行时进行修改以影响服务器用于新连接的TSL上下文。请参阅 服务器端运行时配置和监视加密连接。在MySQL 8.0.16之前,只能在服务器启动时设置此变量。
ssl_fips_mode
属性 值
命令行格式 --ssl-fips-mode={OFF|ON|STRICT}
系统变量 ssl_fips_mode
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 列举
默认值 OFF
有效值
OFF (或0)
ON (或1)
STRICT (或2个)
控制是否在服务器端启用FIPS模式。该 ssl_fips_mode系统变量与其他系统变量的不同之处在于 ,它不用于控制服务器是否允许加密连接,而是影响允许的加密操作。请参见 第6.5节“ FIPS支持”。 ssl_xxx
这些ssl_fips_mode值是允许的:
OFF (或0):禁用FIPS模式。
ON (或1):启用FIPS模式。
STRICT(或2):启用 “ strict ” FIPS模式。
注意
如果OpenSSL的FIPS对象模块不可用时,对于唯一的允许值 ssl_fips_mode是 OFF。在这种情况下,设置 ssl_fips_mode为 启动ON或STRICT在启动时会导致服务器产生错误消息并退出。
ssl_key
属性 值
命令行格式 --ssl-key=file_name
系统变量 ssl_key
范围 全球
动态(≥8.0.16) 是
动态(≤8.0.15) 没有
SET_VAR 提示适用 没有
类型 文件名
默认值 NULL
PEM格式的服务器SSL私钥文件的路径名。为了提高安全性,请使用RSA密钥大小至少为2048位的证书。
如果密钥文件受密码保护,则服务器会提示用户输入密码。密码必须以交互方式提供;它不能存储在文件中。如果密码不正确,程序将继续运行,好像无法读取密钥。
从MySQL 8.0.16开始,此变量是动态的,可以在运行时进行修改以影响服务器用于新连接的TSL上下文。请参阅 服务器端运行时配置和监视加密连接。在MySQL 8.0.16之前,只能在服务器启动时设置此变量。
stored_program_cache
属性 值
命令行格式 --stored-program-cache=#
系统变量 stored_program_cache
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 256
最低值 16
最大值 524288
设置每个连接的缓存存储例程数的软上限。该变量的值是根据MySQL服务器分别为存储过程和存储函数维护的两个缓存中的每个存储例程的数量指定的。
每当执行存储例程时,都会在解析例程中的第一条或顶层语句之前检查此缓存的大小;如果相同类型的例程(正在执行的存储过程或存储函数,所执行的存储过程或存储函数)的数量超过此变量指定的限制,则将刷新相应的缓存,并释放先前分配给缓存对象的内存。这样,即使存储的例程之间存在依赖关系,也可以安全地刷新缓存。
存储过程和存储函数高速缓存与字典对象高速缓存的存储程序定义高速缓存分区并行存在。存储过程和存储函数高速缓存是每个连接的,而存储程序定义高速缓存是共享的。存储过程和存储函数高速缓存中对象的存在与存储程序定义高速缓存中对象的存在无关,反之亦然。有关更多信息,请参见 第14.4节“字典对象缓存”。
stored_program_definition_cache
属性 值
命令行格式 --stored-program-definition-cache=#
系统变量 stored_program_definition_cache
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 256
最低值 256
最大值 524288
定义可以在字典对象高速缓存中保留的已使用和未使用的已存储程序定义对象的数量限制。
仅当使用的数量小于所定义的容量时,才会将未使用的存储程序定义对象保留在字典对象缓存中 stored_program_definition_cache。
设置为0意味着存储的程序定义对象仅在使用时才保留在字典对象缓存中。
存储程序定义高速缓存分区与使用该stored_program_cache选项配置的存储过程和存储函数高速缓存并行存在 。
该stored_program_cache 选项为每个连接设置缓存的存储过程或函数的数量的软上限,并且每次连接执行存储过程或函数时都会检查该上限。另一方面,存储的程序定义高速缓存分区是共享的高速缓存,其存储存储的程序定义对象用于其他目的。存储的程序定义高速缓存分区中对象的存在与存储过程高速缓存或存储的函数高速缓存中对象的存在无关,反之亦然。
有关相关信息,请参见 第14.4节“字典对象缓存”。
super_read_only
属性 值
命令行格式 --super-read-only[={OFF|ON}]
系统变量 super_read_only
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 OFF
如果read_only启用了系统变量,则服务器不允许任何客户端更新,除非具有CONNECTION_ADMIN特权(或不建议使用的SUPER 特权)的用户进行更新 。如果super_read_only还启用了 系统变量,则服务器甚至禁止具有CONNECTION_ADMIN或的 用户进行客户端更新 SUPER。见的描述read_only系统变量为只读模式和有关如何描述 read_only和 super_read_only互动。
super_read_only启用 时禁止进行的客户端更新 包括不一定是更新的操作,例如CREATE FUNCTION(安装UDF)INSTALL PLUGIN,和 INSTALL COMPONENT。禁止这些操作,因为它们涉及对mysql系统架构中表的更改 。
super_read_only在主服务器上 所做的更改不会复制到从属服务器上。可以在从属服务器上设置该值,而与主服务器上的设置无关。
syseventlog.facility
属性 值
命令行格式 --syseventlog.facility=value
介绍了 8.0.13
系统变量 syseventlog.facility
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 串
默认值 daemon
写入错误日志输出的工具 syslog(发送消息的程序类型)。除非log_sink_syseventlog安装了错误日志组件,否则此变量不可用 。请参见第5.4.2.7节“错误记录到系统日志”。
允许的值可能因操作系统而异;请查阅系统syslog文档。
Windows上不存在此变量。
syseventlog.include_pid
属性 值
命令行格式 --syseventlog.include-pid[={OFF|ON}]
介绍了 8.0.13
系统变量 syseventlog.include_pid
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 ON
是否在写入到的错误日志输出的每一行中包括服务器进程ID syslog。除非log_sink_syseventlog安装了错误日志组件,否则此变量不可用 。请参见第5.4.2.7节“错误记录到系统日志”。
Windows上不存在此变量。
syseventlog.tag
属性 值
命令行格式 --syseventlog.tag=tag
介绍了 8.0.13
系统变量 syseventlog.tag
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 串
默认值 empty string
要添加到服务器标识符中的标记,该标记将写入错误日志输出syslog或Windows事件日志中。除非log_sink_syseventlog安装了错误日志组件,否则此变量不可用 。请参见第5.4.2.7节“错误记录到系统日志”。
默认情况下,未设置标签,因此服务器标识符仅 MySQL在Windows和 mysqld其他平台上。如果tag指定了标记值,则将其附加到服务器标识符前并带有连字符,导致 syslog标识符为 (或 在Windows上)。 mysqld-tagMySQL-tag
在Windows上,要使用尚不存在的标记,必须从具有管理员特权的帐户运行服务器,以允许为该标记创建注册表项。如果标签已经存在,则不需要提升的特权。
system_time_zone
属性 值
系统变量 system_time_zone
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 串
服务器系统时区。服务器开始执行时,它将从计算机默认值继承时区设置,该默认设置可能会被用于运行服务器的帐户环境或启动脚本修改。该值用于设置system_time_zone。通常,时区由TZ环境变量指定 。也可以使用mysqld_safe脚本的–timezone选项 指定 。
该system_time_zone变量不同于time_zone。尽管它们可能具有相同的值,但是后一个变量用于为每个连接的客户端初始化时区。请参见第5.1.14节“ MySQL服务器时区支持”。
table_definition_cache
属性 值
命令行格式 --table-definition-cache=#
系统变量 table_definition_cache
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 -1 (表示自动调整大小;不分配此文字值)
最低值 400
最大值 524288
可以存储在定义高速缓存中的表定义的数量。如果使用大量表,则可以创建大表定义缓存以加快表打开速度。与普通表高速缓存不同,表定义高速缓存占用的空间更少,并且不使用文件描述符。最小值是400。默认值基于以下公式,上限为2000:
MIN(400 + table_open_cache / 2, 2000)
对于InnoDB, table_definition_cache充当InnoDB数据字典缓存中打开表实例的数量的软限制 。如果打开表实例的数量超过 table_definition_cache 设置,则LRU机制将开始标记表实例以将其逐出,并最终将其从数据字典缓存中删除。该限制有助于解决以下情况:大量内存将用于缓存很少使用的表实例,直到下次服务器重新启动。具有缓存的元数据的表实例的数量可能会超过 table_definition_cache,因为具有外键关系的父表实例和子表实例不会放在LRU列表上,也不会从内存中逐出。
此外,还 table_definition_cache 定义了InnoDB可以一次打开的每表文件表空间数量的软限制,该限制 也由来控制 innodb_open_files。如果同时 设置table_definition_cache和 innodb_open_files,则使用最高设置。如果未设置任何变量 table_definition_cache,则使用具有较高默认值的。如果打开的表空间文件句柄的数量超过table_definition_cache或 所定义的限制 innodb_open_files,则LRU机制会在表空间文件LRU列表中搜索已完全刷新且当前未扩展的文件。每次打开新表空间时都执行此过程。如果没有“ 非活动 ”表空间,不会关闭任何表空间文件。
表定义高速缓存与字典对象高速缓存的表定义高速缓存分区并行存在 。这两个缓存均存储表定义,但服务于MySQL服务器的不同部分。一个高速缓存中的对象不依赖于另一个高速缓存中的存在对象。有关更多信息,请参见 第14.4节“字典对象缓存”。
table_encryption_privilege_check
属性 值
命令行格式 --table-encryption-privilege-check[={OFF|ON}]
介绍了 8.0.16
系统变量 table_encryption_privilege_check
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 OFF
控制TABLE_ENCRYPTION_ADMIN 使用不同于default_table_encryption 设置的加密来创建或更改模式或常规表空间时,或者使用不同于默认方案加密的加密设置来创建或更改表时进行的 特权检查 。默认情况下,该检查处于禁用状态。
table_encryption_privilege_check 在运行时进行 设置 需要SUPER 特权。
table_encryption_privilege_check 支持SET PERSIST和 SET PERSIST_ONLY语法。请参见 第5.1.9.3节“持久性系统变量”。
有关更多信息,请参见 为架构和常规表空间定义加密默认值。
table_open_cache
属性 值
命令行格式 --table-open-cache=#
系统变量 table_open_cache
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 4000
最低值 1
最大值 524288
所有线程的打开表数。增大该值将增加mysqld所需的文件描述符的数量 。您可以通过检查Opened_tables状态变量来检查是否需要增加表缓存 。请参见第5.1.10节“服务器状态变量”。如果的值Opened_tables 很大,并且您不FLUSH TABLES经常使用(这只会强制关闭并重新打开所有表),则应增加table_open_cache 变量的值。有关表缓存的更多信息,请参见 第8.4.3.1节“ MySQL如何打开和关闭表”。
table_open_cache_instances
属性 值
命令行格式 --table-open-cache-instances=#
系统变量 table_open_cache_instances
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 整数
默认值 16
最低值 1
最大值 64
打开表缓存实例的数量。为了通过减少会话之间的争用来提高可伸缩性,可以将打开的表缓存划分为几个较小的大小为table_open_cache/的 缓存实例 table_open_cache_instances。会话只需锁定一个实例即可访问它以获取DML语句。这可以在实例之间细分缓存访问,从而在有许多会话访问表时允许使用缓存的操作具有更高的性能。(DDL语句仍然需要锁定整个缓存,但是这种语句的频率要比DML语句低得多。)
在通常使用16个或更多内核的系统上,建议将值设置为8或16。
tablespace_definition_cache
属性 值
命令行格式 --tablespace-definition-cache=#
系统变量 tablespace_definition_cache
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 256
最低值 256
最大值 524288
定义可以在字典对象高速缓存中保留的表空间定义对象(已使用和未使用)数量的限制。
未使用的表空间定义对象仅在使用的数量小于所定义的容量时才保留在字典对象缓存中 tablespace_definition_cache。
设置0意味着表空间定义对象在使用时仅保留在字典对象缓存中。
有关更多信息,请参见 第14.4节“字典对象缓存”。
temptable_max_ram
属性 值
命令行格式 --temptable-max-ram=#
系统变量 temptable_max_ram
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 1073741824
最低值 2097152
最大值 2^64-1
定义TempTable开始在磁盘上存储数据之前存储引擎可以占用的最大内存量。默认值为1073741824字节(1GiB)。有关更多信息,请参见 第8.4.4节“ MySQL中的内部临时表使用”。
temptable_use_mmap
属性 值
命令行格式 --temptable-use-mmap[={OFF|ON}]
介绍了 8.0.16
系统变量 temptable_use_mmap
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 ON
定义当TempTable存储引擎占用的内存量超过该temptable_max_ram变量定义的限制时,是否将TempTable存储引擎为内部内存中的临时表分配空间作为内存映射的临时文件 。如果temptable_use_mmap禁用此选项,则TempTable存储引擎将InnoDB改为使用 磁盘内部临时表。有关更多信息,请参见 第8.4.4节“ MySQL中的内部临时表使用”。
thread_cache_size
属性 值
命令行格式 --thread-cache-size=#
系统变量 thread_cache_size
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 -1 (表示自动调整大小;不分配此文字值)
最低值 0
最大值 16384
服务器应缓存多少线程以供重用。当客户端断开连接时,如果那里的thread_cache_size线程少于该线程,则将客户端的线程放入缓存中 。通过尽可能地重用从缓存中获取的线程来满足线程请求,并且仅当缓存为空时才创建新线程。如果您有很多新连接,则可以增加此变量以提高性能。通常,如果您具有良好的线程实现,则这不会显着提高性能。但是,如果您的服务器每秒看到数百个连接,则通常应设置 thread_cache_size足够高,以便大多数新连接使用缓存的线程。通过检查Connections和 Threads_created状态变量之间的差异 ,您可以了解线程缓存的效率。有关详细信息,请参见第5.1.10节“服务器状态变量”。
默认值基于以下公式,上限为100:
8 + (max_connections / 100)
thread_handling
属性 值
命令行格式 --thread-handling=name
系统变量 thread_handling
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 列举
默认值 one-thread-per-connection
有效值
no-threads
one-thread-per-connection
loaded-dynamically
服务器用于连接线程的线程处理模型。允许的值为 no-threads(服务器使用一个线程来处理一个连接)和 one-thread-per-connection(服务器使用一个线程来处理每个客户端连接)。 no-threads在Linux下调试时很有用;请参见第29.5节“调试和移植MySQL”。
thread_pool_algorithm
属性 值
命令行格式 --thread-pool-algorithm=#
系统变量 thread_pool_algorithm
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 整数
默认值 0
最低值 0
最大值 1
此变量控制线程池插件使用哪种算法:
值0(默认值)使用保守的低并发算法,该算法经过了最充分的测试,已知会产生非常好的结果。
值为1会增加并发性,并使用更具攻击性的算法,该算法有时在最佳线程数上的性能要好5–10%,但是随着连接数的增加,性能会下降。它的使用应视为实验性的,不被支持。
仅当启用了线程池插件时,此变量才可用。请参见第5.6.3节“ MySQL企业线程池”
thread_pool_high_priority_connection
属性 值
命令行格式 --thread-pool-high-priority-connection=#
系统变量 thread_pool_high_priority_connection
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 0
最低值 0
最大值 1
此变量影响执行前新语句的排队。如果值为0(默认值为false,则为假),语句队列将同时使用低优先级队列和高优先级队列。如果值为1(true),则排队的语句始终进入高优先级队列。
仅当启用了线程池插件时,此变量才可用。请参见第5.6.3节“ MySQL企业线程池”
thread_pool_max_active_query_threads
属性 值
命令行格式 --thread-pool-max-active-query-threads
介绍了 8.0.19
系统变量 thread_pool_max_active_query_threads
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 0
最低值 0
最大值 512
每个组中允许的最大活动(运行)查询线程数。如果值为0,则线程池插件最多使用可用线程。
thread_pool_max_unused_threads
属性 值
命令行格式 --thread-pool-max-unused-threads=#
系统变量 thread_pool_max_unused_threads
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 0
最低值 0
最大值 4096
线程池中允许的最大未使用线程数。该变量可以限制睡眠线程使用的内存量。
值0(默认值)表示睡眠线程数没有限制。的值N ,其中N大于0表示1个消费者线程和更大N-1储备线程。在这种情况下,如果一个线程已准备好进入睡眠状态,但是睡眠线程的数量已经达到最大值,则该线程将退出而不是进入睡眠状态。
休眠线程正在作为使用者线程或保留线程休眠。线程池在休眠时允许一个线程成为使用者线程。如果线程进入睡眠状态,并且没有现有的使用者线程,它将作为使用者线程进入睡眠状态。当必须唤醒一个线程时,如果有一个消费者线程,则选择该线程。仅当没有使用者线程要唤醒时才选择保留线程。
仅当启用了线程池插件时,此变量才可用。请参见第5.6.3节“ MySQL企业线程池”
thread_pool_prio_kickup_timer
属性 值
命令行格式 --thread-pool-prio-kickup-timer=#
系统变量 thread_pool_prio_kickup_timer
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 1000
最低值 0
最大值 4294967294
This variable affects statements waiting for execution in the low-priority queue. The value is the number of milliseconds before a waiting statement is moved to the high-priority queue. The default is 1000 (1 second). The range of values is 0 to 232 − 2.
This variable is available only if the thread pool plugin is enabled. See Section 5.6.3, “MySQL Enterprise Thread Pool”
thread_pool_size
Property Value
Command-Line Format --thread-pool-size=#
System Variable thread_pool_size
Scope Global
Dynamic No
SET_VAR Hint Applies No
Type Integer
Default Value 16
Minimum Value 1
Maximum Value (≥ 8.0.19) 512
Maximum Value (≤ 8.0.18) 64
线程池中的线程组数。这是控制线程池性能的最重要参数。它影响可以同时执行的语句数。缺省值是16,允许值的范围是1到64。如果指定的值超出此范围,则不会加载线程池插件,并且服务器会将消息写入错误日志。
仅当启用了线程池插件时,此变量才可用。请参见第5.6.3节“ MySQL企业线程池”
thread_pool_stall_limit
属性 值
命令行格式 --thread-pool-stall-limit=#
系统变量 thread_pool_stall_limit
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 6
最低值 4
最大值 600
此变量影响执行语句。该值是一条语句在开始执行之后必须先完成的时间,然后才被定义为停顿,此时线程池允许线程组开始执行另一条语句。该值以10毫秒为单位测量,因此值6(默认值)表示60ms。值的范围是4到600(40ms到6s)。较短的等待值使线程可以更快地启动。较短的值也可以更好地避免死锁情况。长等待值对于包含长时间运行的语句的工作负载很有用,以避免在当前语句执行时启动太多新语句。
仅当启用了线程池插件时,此变量才可用。请参见第5.6.3节“ MySQL企业线程池”
thread_stack
属性 值
命令行格式 --thread-stack=#
系统变量 thread_stack
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 整数
默认值(64位平台) 286720
默认值(32位平台) 221184
最低值 131072
最大值(64位平台) 18446744073709551615
最大值(32位平台) 4294967295
块大小 1024
每个线程的堆栈大小。默认值足够大,可以正常运行。如果线程堆栈大小太小,则会限制服务器可以处理的SQL语句的复杂性,存储过程的递归深度以及其他消耗内存的操作。
time_zone
属性 值
系统变量 time_zone
范围 全球会议
动态 是
SET_VAR提示适用(≥8.0.17) 是
SET_VAR提示适用(≤8.0.16) 没有
类型 串
默认值 SYSTEM
最小值(≥8.0.19) -14:00
最小值(≤8.0.18) -12:59
最大值(≥8.0.19) +14:00
最大值(≤8.0.18) +13:00
当前时区。此变量用于初始化每个连接的客户端的时区。缺省情况下,该初始值是’SYSTEM’(这意味着, “ 使用的值 system_time_zone ”)。可以使用–default-time-zone选项在服务器启动时显式指定该值。请参见第5.1.14节“ MySQL服务器时区支持”。
注意
如果设置为SYSTEM,则每个需要时区计算的MySQL函数调用都会进行系统库调用以确定当前系统时区。此调用可能受到全局互斥锁的保护,从而导致争用。
timestamp
属性 值
系统变量 timestamp
范围 届会
动态 是
SET_VAR 提示适用 是
类型 数字
默认值 UNIX_TIMESTAMP()
最低值 1
最大值 2147483647
设置此客户端的时间。如果您使用二进制日志来还原行,则使用它来获取原始时间戳。 timestamp_value应该是Unix纪元时间戳(一个类似的值 UNIX_TIMESTAMP(),而不是格式的值)或 。 'YYYY-MM-DD hh:mm:ss’DEFAULT
设置timestamp为恒定值会使它保留该值,直到再次更改为止。设置 timestamp为 DEFAULT会使它的值成为访问它时的当前日期和时间。
timestamp是一个 DOUBLE,而不是 BIGINT因为它的值包括微秒的部分。最大值对应于 '2038-01-19 03:14:07’UTC,与TIMESTAMP数据类型相同。
SET timestamp影响的返回值,NOW()但不 影响 SYSDATE()。这意味着二进制日志中的时间戳设置对的调用没有影响SYSDATE()。可以使用使服务器成为别名的–sysdate-is-now选项启动服务器 ,在这种情况下 会影响这两个功能。 SYSDATE()NOW()SET timestamp
tls_ciphersuites
属性 值
命令行格式 --tls-ciphersuites=ciphersuite_list
介绍了 8.0.16
系统变量 tls_ciphersuites
范围 全球
动态 是
SET_VAR 提示适用 没有
类型 串
默认值 NULL
服务器使用哪种加密算法允许使用TLSv1.3的加密连接。该值是零个或多个冒号分隔的密码套件名称的列表。
可以为此变量命名的密码套件取决于用于编译MySQL的SSL库。如果未设置此变量,则其默认值为NULL,这意味着服务器允许使用默认的密码套件集。如果将变量设置为空字符串,则不会启用任何密码套件,并且无法建立加密连接。有关更多信息,请参见 第6.3.2节“加密的连接TLS协议和密码”。
tls_version
属性 值
命令行格式 --tls-version=protocol_list
系统变量 tls_version
范围 全球
动态(≥8.0.16) 是
动态(≤8.0.15) 没有
SET_VAR 提示适用 没有
类型 串
默认值(≥8.0.16)
TLSv1,TLSv1.1,TLSv1.2,TLSv1.3 (OpenSSL 1.1.1及更高版本)
TLSv1,TLSv1.1,TLSv1.2 (除此以外)
默认值(≤8.0.15) TLSv1,TLSv1.1,TLSv1.2
服务器允许哪种协议进行加密连接。该值是一个或多个逗号分隔的协议名称的列表。可以为该变量命名的协议取决于用于编译MySQL的SSL库。应该选择允许的协议,以免在列表中留下 “ 漏洞 ”。有关详细信息,请参见 第6.3.2节“加密的连接TLS协议和密码”。
从MySQL 8.0.16开始,此变量是动态的,可以在运行时进行修改以影响服务器用于新连接的TSL上下文。请参阅 服务器端运行时配置和监视加密连接。在MySQL 8.0.16之前,只能在服务器启动时设置此变量。
tmp_table_size
属性 值
命令行格式 --tmp-table-size=#
系统变量 tmp_table_size
范围 全球会议
动态 是
SET_VAR 提示适用 是
类型 整数
默认值 16777216
最低值 1024
最大值 18446744073709551615
内部内存临时表的最大大小。此变量不适用于用户创建的 MEMORY表。
实际限制是较小的 tmp_table_size和 max_heap_table_size。当内存中的临时表超过限制时,MySQL会自动将其转换为磁盘上的临时表。
如果您执行许多高级 查询并且有很多内存,请 增加tmp_table_size( max_heap_table_size如果需要)的值 GROUP BY。
您可以将通过比较Created_tmp_disk_tables和 Created_tmp_tables值创建的内部磁盘临时表的数量与内部临时表的总数进行比较 。
另请参见第8.4.4节“ MySQL中的内部临时表使用”。
tmpdir
属性 值
命令行格式 --tmpdir=dir_name
系统变量 tmpdir
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 目录名
用于创建临时文件的目录的路径。如果您的默认/tmp 目录位于一个太小而无法容纳临时表的分区上,则可能会很有用。可以将此变量设置为以循环方式使用的多个路径的列表。路径应:在Unix上用冒号()和;在Windows上用分号()分隔。
tmpdir可以是非永久位置,例如基于内存的文件系统上的目录或服务器主机重新启动时将清除的目录。如果MySQL服务器充当复制从属服务器,并且您使用的非永久位置 tmpdir,请考虑使用slave_load_tmpdir变量为从属服务器设置其他临时目录 。对于复制从属服务器,用于复制LOAD DATA语句的临时文件 存储在此目录中,因此具有永久位置,它们可以在计算机重新启动后幸存下来,尽管如果删除了临时文件,现在可以在重新启动后继续复制。
有关临时文件的存储位置的更多信息,请参见第B.4.3.5节“ MySQL在哪里存储临时文件”。
transaction_alloc_block_size
属性 值
命令行格式 --transaction-alloc-block-size=#
系统变量 transaction_alloc_block_size
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 8192
最低值 1024
最大值 131072
块大小 1024
增加需要事务的每个事务存储池的字节数。请参阅的说明 transaction_prealloc_size。
transaction_isolation
属性 值
命令行格式 --transaction-isolation=name
系统变量 transaction_isolation
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 列举
默认值 REPEATABLE-READ
有效值
READ-UNCOMMITTED
READ-COMMITTED
REPEATABLE-READ
SERIALIZABLE
事务隔离级别。默认值为 REPEATABLE-READ。
事务隔离级别具有三个范围:全局,会话和下一个事务。这种三作用域的实现会导致一些非标准的隔离级别分配语义,如稍后所述。
要在启动时设置全局事务隔离级别,请使用–transaction-isolation 服务器选项。
在运行时,可以使用该SET 语句直接设置隔离级别, 以将值分配给 transaction_isolation系统变量,也可以使用该SET TRANSACTION语句间接设置。如果transaction_isolation 直接将隔离级别名称设置 为包含空格,则该名称应用引号引起来,并用短划线代替空格。例如,使用以下 SET 语句来设置全局值:
SET GLOBAL transaction_isolation = ‘READ-COMMITTED’;
设置全局 transaction_isolation值可设置所有后续会话的隔离级别。现有会话不受影响。
要设置会话或下一级 transaction_isolation值,请使用以下 SET 语句。对于大多数会话系统变量,这些语句是设置值的等效方法:
SET @@SESSION.var_name = value;
SET SESSION var_name = value;
SET var_name = value;
SET @@var_name = value;
如前所述,事务隔离级别除了全局作用域和会话作用域之外,还具有下一个事务作用域。为了能够设置next-transaction范围, SET 分配会话系统变量值的语法具有以下非标准语义 transaction_isolation:
要设置会话隔离级别,请使用以下任何语法:
SET @@SESSION.transaction_isolation = value;
SET SESSION transaction_isolation = value;
SET transaction_isolation = value;
对于这些语法中的每一种,这些语义都适用:
为会话中执行的所有后续事务设置隔离级别。
允许在事务内进行,但不影响当前正在进行的事务。
如果在事务之间执行,则将覆盖设置下一个事务隔离级别的任何在前语句。
对应于 SET SESSION TRANSACTION ISOLATION LEVEL(带有SESSION关键字)。
要设置下一个事务隔离级别,请使用以下语法:
SET @@transaction_isolation = value;
对于该语法,这些语义适用:
仅为会话中执行的下一个单个事务设置隔离级别。
随后的事务将恢复到会话隔离级别。
交易内不允许。
对应于 SET TRANSACTION ISOLATION LEVEL(无 SESSION关键字)。
有关系统变量SET TRANSACTION及其与transaction_isolation系统变量的关系的 更多信息,请参见第13.3.7节“ SET TRANSACTION语句”。
transaction_prealloc_size
属性 值
命令行格式 --transaction-prealloc-size=#
系统变量 transaction_prealloc_size
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 4096
最低值 1024
最大值 131072
块大小 1024
每个事务都有一个内存池,各种与事务相关的分配都从该内存池获取内存。池的初始大小(以字节为单位)为 transaction_prealloc_size。对于由于没有足够的可用内存而无法从池中满足的每个分配,将以transaction_alloc_block_size 字节为单位增加池 。事务结束时,池将被截断为 transaction_prealloc_size 字节。
通过 transaction_prealloc_size 足够大以在单个事务中包含所有语句,可以避免多次malloc() 调用。
transaction_read_only
属性 值
命令行格式 --transaction-read-only[={OFF|ON}]
系统变量 transaction_read_only
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 布尔型
默认值 OFF
事务访问方式。该值可以是 OFF(读/写;默认值)或 ON(只读)。
事务访问模式具有三个范围:全局,会话和下一个事务。这种三作用域的实现导致了一些非标准的访问模式分配语义,如稍后所述。
要在启动时设置全局事务访问模式,请使用 --transaction-read-only服务器选项。
在运行时,可以使用该SET 语句直接设置访问模式以将值分配给 transaction_read_only系统变量,也可以使用该SET TRANSACTION语句间接设置访问模式 。例如,使用以下 SET 语句来设置全局值:
SET GLOBAL transaction_read_only = ON;
设置全局 transaction_read_only值可设置所有后续会话的访问模式。现有会话不受影响。
要设置会话或下一级 transaction_read_only值,请使用以下 SET 语句。对于大多数会话系统变量,这些语句是设置值的等效方法:
SET @@SESSION.var_name = value;
SET SESSION var_name = value;
SET var_name = value;
SET @@var_name = value;
如前所述,除了全局作用域和会话作用域之外,事务访问模式还具有下一个事务作用域。要设置下一个交易范围, SET 用于分配会话系统变量值的语法具有的非标准语义 transaction_read_only,
要设置会话访问模式,请使用以下任何语法:
SET @@SESSION.transaction_read_only = value;
SET SESSION transaction_read_only = value;
SET transaction_read_only = value;
对于这些语法中的每一种,这些语义都适用:
为会话内执行的所有后续事务设置访问模式。
允许在事务内进行,但不影响当前正在进行的事务。
如果在事务之间执行,则将覆盖设置下一个事务访问模式的任何在前语句。
对应于 SET SESSION TRANSACTION {READ WRITE | READ ONLY} (带有SESSION关键字)。
要设置下一个事务访问模式,请使用以下语法:
SET @@transaction_read_only = value;
对于该语法,这些语义适用:
仅为会话中执行的下一个单个事务设置访问模式。
随后的事务将恢复为会话访问模式。
交易内不允许。
对应于 SET TRANSACTION {READ WRITE | READ ONLY} (无SESSION关键字)。
有关系统变量SET TRANSACTION及其与transaction_read_only系统变量的关系的 更多信息,请参见第13.3.7节“ SET TRANSACTION语句”。
unique_checks
属性 值
系统变量 unique_checks
范围 全球会议
动态 是
SET_VAR 提示适用 是
类型 布尔型
默认值 ON
如果设置为1(默认值),则对InnoDB表中的二级索引执行唯一性检查。如果设置为0,则允许存储引擎假定输入数据中不存在重复键。如果您确定您的数据不包含唯一性违规,则可以将其设置为0,以加快将大型表导入到的速度 InnoDB。
将此变量设置为0 不需要存储引擎忽略重复的键。仍然允许引擎检查它们并在检测到它们时发出重复密钥错误。
updatable_views_with_limit
属性 值
命令行格式 --updatable-views-with-limit[={OFF|ON}]
系统变量 updatable_views_with_limit
范围 全球会议
动态 是
SET_VAR 提示适用 是
类型 布尔型
默认值 1
如果该更新不包含基础表中定义的主键的所有列,则该变量控制如果该更新不包含基础表中定义的主键的所有列,则是否可以对该视图进行更新LIMIT。(此类更新通常由GUI工具生成。)更新是 UPDATEor DELETE语句。这里的主键表示一个PRIMARY KEY或 UNIQUE索引,其中任何列都不能包含 NULL。
该变量可以具有两个值:
1或YES:仅发出警告(而不是错误消息)。这是默认值。
0或NO:禁止更新。
use_secondary_engine
属性 值
介绍了 8.0.13
系统变量 use_secondary_engine
范围 届会
动态 是
SET_VAR 提示适用 是
类型 列举
默认值 ON
有效值
OFF
ON
FORCED
供将来使用。
validate_password.xxx
该validate_password组件实现了一组名称为形式的系统变量 。这些变量影响该组件的密码测试。请参见 第6.4.3.2节“密码验证选项和变量”。 validate_password.xxx
validate_user_plugins
属性 值
命令行格式 --validate-user-plugins[={OFF|ON}]
系统变量 validate_user_plugins
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 布尔型
默认值 ON
如果启用了此变量(默认设置),则服务器将检查每个用户帐户,并在发现导致该帐户不可用的条件时发出警告:
该帐户需要未加载的身份验证插件。
该帐户需要使用 sha256_password或 caching_sha2_password身份验证插件,但服务器未按照插件要求启用SSL或RSA的状态下启动。
启用validate_user_plugins会减慢服务器初始化和速度FLUSH PRIVILEGES。如果不需要其他检查,则可以在启动时禁用此变量以避免性能下降。
version
服务器的版本号。该值可能还包含一个后缀,指示服务器的内部版本或配置信息。-debug表示服务器是在启用调试支持的情况下构建的。
version_comment
属性 值
系统变量 version_comment
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 串
该CMake的配置程序有一个 COMPILATION_COMMENT_SERVER 选项,允许评论构建MySQL时指定。此变量包含该注释的值。(在MySQL 8.0.14之前, version_comment由该COMPILATION_COMMENT选项设置 。)请参见 第2.9.7节“ MySQL源配置选项”。
version_compile_machine
属性 值
系统变量 version_compile_machine
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 串
服务器二进制文件的类型。
version_compile_os
属性 值
系统变量 version_compile_os
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 串
建立MySQL的作业系统类型。
version_compile_zlib
属性 值
系统变量 version_compile_zlib
范围 全球
动态 没有
SET_VAR 提示适用 没有
类型 串
内置zlib 库的版本。
wait_timeout
属性 值
命令行格式 --wait-timeout=#
系统变量 wait_timeout
范围 全球会议
动态 是
SET_VAR 提示适用 没有
类型 整数
默认值 28800
最低值 1
最大值(其他) 31536000
最大值(Windows) 2147483
服务器在关闭非交互式连接之前等待活动的秒数。
在线程启动时,会话 wait_timeout值是根据全局wait_timeout值或全局值 初始化的 interactive_timeout,具体取决于客户端的类型(由的CLIENT_INTERACTIVEconnect选项 定义 mysql_real_connect())。另请参阅interactive_timeout。
warning_count
最后一条生成消息的语句导致的错误,警告和注释的数量。该变量是只读的。请参见第13.7.7.40节“ SHOW WARNINGS语句”。
windowing_use_high_precision
属性 值
命令行格式 --windowing-use-high-precision[={OFF|ON}]
系统变量 windowing_use_high_precision
范围 全球会议
动态 是
SET_VAR 提示适用 是
类型 布尔型
默认值 ON
是否在不损失精度的情况下计算窗口操作。请参见第8.2.1.21节“窗口函数优化”。




