本节提供有关特定于 NDB 集群的 MySQL 服务器选项、服务器和状态变量的信息。有关使用这些变量的一般信息,以及其他非特定于 NDB 集群的选项和变量,请参见 第 7.1 节,“MySQL 服务器”.
有关在集群配置文件(通常名为 config.ini
)中使用的 NDB 集群配置参数,请参见 第 25.4 节,“NDB 集群配置”.
本节提供有关与 NDB 集群相关的 mysqld 服务器选项的说明。有关非特定于 NDB 集群的 mysqld 选项的信息,以及有关使用 mysqld 选项的一般信息,请参见 第 7.1.7 节,“服务器命令选项”.
有关与其他 NDB 集群进程一起使用的命令行选项的信息,请参见 第 25.5 节,“NDB 集群程序”.
-
命令行格式 --ndbcluster[=value]
被禁用 skip-ndbcluster
类型 枚举 默认值 ON
有效值 OFF
FORCE
使用 NDB 集群需要
NDBCLUSTER
存储引擎。如果 mysqld 二进制文件包含对NDBCLUSTER
存储引擎的支持,则默认情况下该引擎被禁用。使用--ndbcluster
选项启用它。使用--skip-ndbcluster
明确禁用该引擎。如果还使用了
--initialize
,则会忽略--ndbcluster
选项(并且不会启用NDB
存储引擎)。(与--initialize
一起使用此选项既不必要也不理想。) --ndb-allow-copying-alter-table=[ON|OFF]
命令行格式 --ndb-allow-copying-alter-table[={OFF|ON}]
系统变量 ndb_allow_copying_alter_table
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
允许
ALTER TABLE
和其他 DDL 语句对NDB
表使用复制操作。设置为OFF
以防止这种情况发生;这样做可以提高关键应用程序的性能。--ndb-applier-allow-skip-epoch
命令行格式 --ndb-applier-allow-skip-epoch
系统变量 ndb_applier_allow_skip_epoch
范围 全局 动态 否 SET_VAR
提示适用否 与
--replica-skip-errors
一起使用,使NDB
忽略跳过的 epoch 事务。单独使用时无效。-
命令行格式 --ndb-batch-size
系统变量 ndb_batch_size
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 整数 默认值 32768
最小值 0
最大值 2147483648
单位 字节 这将设置用于 NDB 事务批次的字节大小。
--ndb-cluster-connection-pool=
#
命令行格式 --ndb-cluster-connection-pool
系统变量 ndb_cluster_connection_pool
系统变量 ndb_cluster_connection_pool
范围 全局 范围 全局 动态 否 动态 否 SET_VAR
提示适用否 SET_VAR
提示适用否 类型 整数 默认值 1
最小值 1
最大值 63
通过将此选项设置为大于 1 的值(默认值),mysqld 进程可以使用多个连接到集群,有效地模拟多个 SQL 节点。每个连接都需要在集群配置 (
config.ini
) 文件中具有自己的[api]
或[mysqld]
部分,并且会计算到集群支持的 API 连接的最大数量中。假设您有两个集群主机计算机,每个计算机运行一个 SQL 节点,其 mysqld 进程使用
--ndb-cluster-connection-pool=4
启动;这意味着集群必须有 8 个 API 插槽可用于这些连接(而不是 2 个)。所有这些连接在 SQL 节点连接到集群时建立,并以循环方式分配给线程。此选项仅在主机上运行 mysqld 且该主机具有多个 CPU、多个内核或两者兼有时才有用。为了获得最佳效果,该值应小于主机上可用内核的总数。将其设置为大于此值的数值可能会严重降低性能。
重要由于每个使用连接池的 SQL 节点都占用多个 API 节点插槽(每个插槽在集群中都有其自己的节点 ID),因此您不得在启动使用连接池的任何 mysqld 进程时将节点 ID 作为集群连接字符串的一部分使用。
在使用
--ndb-cluster-connection-pool
选项时,在连接字符串中设置节点 ID 会在 SQL 节点尝试连接到集群时导致节点 ID 分配错误。--ndb-cluster-connection-pool-nodeids=
list
命令行格式 --ndb-cluster-connection-pool-nodeids
系统变量 ndb_cluster_connection_pool_nodeids
范围 全局 动态 否 SET_VAR
提示适用否 类型 设置 默认值 指定 SQL 节点使用的连接到集群的节点 ID 的逗号分隔列表。此列表中的节点数量必须与为
--ndb-cluster-connection-pool
选项设置的值相同。--ndb-blob-read-batch-bytes=
bytes
命令行格式 --ndb-blob-read-batch-bytes
系统变量 ndb_blob_read_batch_bytes
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 整数 默认值 65536
最小值 0
最大值 4294967295
此选项可用于设置在 NDB 集群应用程序中对
BLOB
数据读取进行批处理的大小(以字节为单位)。当当前事务中要读取的BLOB
数据量超过此批处理大小时,任何挂起的BLOB
读取操作会立即执行。此选项的最大值为 4294967295;默认值为 65536。将其设置为 0 会禁用
BLOB
读取批处理。注意在 NDB API 应用程序中,您可以使用
setMaxPendingBlobReadBytes()
和getMaxPendingBlobReadBytes()
方法控制BLOB
写入批处理。--ndb-blob-write-batch-bytes=
bytes
命令行格式 --ndb-blob-write-batch-bytes
系统变量 ndb_blob_write_batch_bytes
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 整数 默认值 65536
最小值 0
最大值 4294967295
单位 字节 此选项可用于设置在 NDB 集群应用程序中对
BLOB
数据写入进行批处理的大小(以字节为单位)。当当前事务中要写入的BLOB
数据量超过此批处理大小时,任何挂起的BLOB
写入操作会立即执行。此选项的最大值为 4294967295;默认值为 65536。将其设置为 0 会禁用
BLOB
写入批处理。注意在 NDB API 应用程序中,您可以使用
setMaxPendingBlobWriteBytes()
和getMaxPendingBlobWriteBytes()
方法控制BLOB
写入批处理。--ndb-connectstring=
connection_string
命令行格式 --ndb-connectstring
类型 字符串 使用
NDBCLUSTER
存储引擎时,此选项指定用于分发集群配置数据的管理服务器。有关语法,请参见 第 25.4.3.3 节,“NDB 集群连接字符串”.--ndb-default-column-format=[FIXED|DYNAMIC]
命令行格式 --ndb-default-column-format={FIXED|DYNAMIC}
系统变量 ndb_default_column_format
范围 全局 动态 是 SET_VAR
提示适用否 类型 枚举 默认值 FIXED
有效值 FIXED
DYNAMIC
为新表设置默认
COLUMN_FORMAT
和ROW_FORMAT
(请参见 第 15.1.20 节,“CREATE TABLE 语句”)。默认值为FIXED
。--ndb-deferred-constraints=[0|1]
命令行格式 --ndb-deferred-constraints
系统变量 ndb_deferred_constraints
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 整数 默认值 0
最小值 0
最大值 1
控制是否将唯一索引上的约束检查推迟到提交时,在支持此类检查的情况下。
0
是默认值。此选项通常不需要用于 NDB 集群或 NDB 集群复制的操作,主要用于测试。
-
命令行格式 --ndb-schema-dist-timeout=#
系统变量 ndb_schema_dist_timeout
范围 全局 动态 否 SET_VAR
提示适用否 类型 整数 默认值 120
最小值 5
最大值 1200
单位 秒 指定此 mysqld 在将架构操作标记为超时之前等待其完成的最大时间(以秒为单位)。
--ndb-distribution=[KEYHASH|LINHASH]
命令行格式 --ndb-distribution={KEYHASH|LINHASH}
系统变量 ndb_distribution
范围 全局 动态 是 SET_VAR
提示适用否 类型 枚举 默认值 KEYHASH
有效值 LINHASH
KEYHASH
控制
NDB
表的默认分配方法。可以设置为KEYHASH
(键散列)或LINHASH
(线性散列)中的任何一个。KEYHASH
是默认值。-
命令行格式 --ndb-log-apply-status[={OFF|ON}]
系统变量 ndb_log_apply_status
范围 全局 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
使复制的 mysqld 将从其直接来源收到的任何更新记录到其自己的二进制日志中的
mysql.ndb_apply_status
表中,使用其自己的服务器 ID 而不是来源的服务器 ID。在循环或链式复制设置中,这允许此类更新传播到配置为当前 mysqld 复制的任何 MySQL 服务器的mysql.ndb_apply_status
表中。在链式复制设置中,使用此选项使下游(复制)集群能够了解其相对于所有上游贡献者(来源)的位置。
在循环复制设置中,此选项导致对
ndb_apply_status
表的更改完成整个循环,最终传播回源 NDB 集群。这也允许充当复制源的集群查看其更改(纪元)何时已应用于循环中的其他集群。除非 MySQL 服务器使用
--ndbcluster
选项启动,否则此选项无效。 --ndb-log-empty-epochs=[ON|OFF]
命令行格式 --ndb-log-empty-epochs[={OFF|ON}]
系统变量 ndb_log_empty_epochs
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
导致即使在启用
log_replica_updates
时,在没有更改的纪元期间也将写入ndb_apply_status
和ndb_binlog_index
表。默认情况下,此选项已禁用。禁用
--ndb-log-empty-epochs
会导致没有更改的纪元事务不会写入二进制日志,尽管即使在ndb_binlog_index
中的空纪元,也会写入一行。由于
--ndb-log-empty-epochs=1
会导致ndb_binlog_index
表的大小独立于二进制日志的大小增加,因此用户应准备好管理此表的大小,即使他们预计集群在很大一部分时间内都处于闲置状态。--ndb-log-empty-update=[ON|OFF]
命令行格式 --ndb-log-empty-update[={OFF|ON}]
系统变量 ndb_log_empty_update
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
导致即使在启用
log_replica_updates
时,也会将未产生更改的更新写入ndb_apply_status
和ndb_binlog_index
表。默认情况下,此选项已禁用(
OFF
)。禁用--ndb-log-empty-update
会导致没有更改的更新不会写入二进制日志。--ndb-log-exclusive-reads=[0|1]
命令行格式 --ndb-log-exclusive-reads[={OFF|ON}]
系统变量 ndb_log_exclusive_reads
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 0
使用此选项启动服务器会导致主键读取以独占锁记录,这允许基于读取冲突的 NDB 集群复制冲突检测和解决。您还可以通过将
ndb_log_exclusive_reads
系统变量的值分别设置为 1 或 0 来在运行时启用和禁用这些锁。0(禁用锁定)是默认值。有关更多信息,请参见 读取冲突检测和解决。
-
命令行格式 --ndb-log-fail-terminate
系统变量 ndb_log_fail_terminate
范围 全局 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 FALSE
当指定此选项时,并且无法完全记录所有找到的行事件,则 mysqld 进程将终止。
-
命令行格式 --ndb-log-orig[={OFF|ON}]
系统变量 ndb_log_orig
范围 全局 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
在
ndb_binlog_index
表中记录源服务器 ID 和纪元。注意这使得特定纪元可以在
ndb_binlog_index
中具有多行,每个源纪元一行。有关更多信息,请参见 第 25.7.4 节,“NDB 集群复制架构和表”。
--ndb-log-transaction-dependency
命令行格式 --ndb-log-transaction-dependency={true|false}
系统变量 ndb_log_transaction_dependency
范围 全局 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 false
导致
NDB
二进制日志记录线程为其写入二进制日志的每个事务计算事务依赖项。默认值为FALSE
。此选项不能在运行时设置;相应的
ndb_log_transaction_dependency
系统变量是只读的。-
命令行格式 --ndb-log-transaction-id[={OFF|ON}]
系统变量 ndb_log_transaction_id
范围 全局 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
导致复制的 mysqld 在二进制日志的每一行中写入 NDB 事务 ID。默认值为
FALSE
。--ndb-log-transaction-id
是使用NDB$EPOCH_TRANS()
函数启用 NDB 集群复制冲突检测和解决所必需的(请参见 NDB$EPOCH_TRANS())。有关更多信息,请参见 第 25.7.12 节,“NDB 集群复制冲突解决”。 -
命令行格式 --ndb-log-update-as-write[={OFF|ON}]
系统变量 ndb_log_update_as_write
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
源上的更新是作为更新(
OFF
)还是写入(ON
)写入二进制日志。当此选项启用时,并且--ndb-log-updated-only
和--ndb-log-update-minimal
都已禁用,不同类型的操作将按以下列表中所述记录INSERT
:记录为WRITE_ROW
事件,没有前映像;后映像以所有列记录。UPDATE
:记录为WRITE_ROW
事件,没有前映像;后映像以所有列记录。DELETE
:记录为DELETE_ROW
事件,所有列都在前映像中记录;后映像未记录。
此选项可用于 NDB 复制冲突解决,并结合前面提到的另外两个 NDB 日志记录选项;请参见 ndb_replication 表,以获取更多信息。
-
命令行格式 --ndb-log-updated-only[={OFF|ON}]
系统变量 ndb_log_updated_only
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
是否 mysqld 仅写入更新(
ON
)还是完整行(OFF
)到二进制日志。当此选项启用时,并且--ndb-log-update-as-write
和--ndb-log-update-minimal
都已禁用,不同类型的操作将按以下列表中所述记录INSERT
:记录为WRITE_ROW
事件,没有前映像;后映像以所有列记录。UPDATE
:记录为UPDATE_ROW
事件,主键列和更新列同时出现在前映像和后映像中。DELETE
:记录为DELETE_ROW
事件,主键列包含在前映像中;后映像未记录。
此选项可用于 NDB 复制冲突解决,并结合前面提到的另外两个 NDB 日志记录选项;请参见 ndb_replication 表,以获取有关这些选项如何相互交互的更多信息。
-
命令行格式 --ndb-log-update-minimal[={OFF|ON}]
系统变量 ndb_log_update_minimal
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
以最小方式记录更新,仅在前映像中写入主键值,仅在后映像中写入更改的列。如果复制到除
NDB
之外的存储引擎,这可能会导致兼容性问题。当此选项启用时,并且--ndb-log-updated-only
和--ndb-log-update-as-write
都已禁用,不同类型的操作将按以下列表中所述记录INSERT
:记录为WRITE_ROW
事件,没有前映像;后映像以所有列记录。UPDATE
:记录为UPDATE_ROW
事件,主键列在前映像中;所有列 除了 主键列都在后映像中记录。DELETE
:记录为DELETE_ROW
事件,所有列都在前映像中记录;后映像未记录。
此选项可用于 NDB 复制冲突解决,并结合前面提到的另外两个 NDB 日志记录选项;请参见 ndb_replication 表,以获取更多信息。
--ndb-mgm-tls=[relaxed|strict]
命令行格式 --ndb-mgm-tls=[strict|relaxed]
系统变量 ndb_mgm_tls
范围 全局 动态 否 SET_VAR
提示适用否 类型 枚举 默认值 relaxed
有效值 relaxed
strict
设置与 NDB 集群的 TLS 连接所需的 TLS 支持级别;该值为
relaxed
或strict
之一。relaxed
表示将尝试建立 TLS 连接,但不要求成功;strict
表示需要 TLS 才能连接。默认值为relaxed
。-
命令行格式 --ndb-mgmd-host=host_name[:port_num]
类型 字符串 默认值 localhost:1186
可用于为程序要连接到的单个管理服务器设置主机和端口号。如果程序在其连接信息中需要节点 ID 或对多个管理服务器(或两者)的引用,请改用
--ndb-connectstring
选项。 -
命令行格式 --ndb-nodeid=#
状态变量 Ndb_cluster_node_id
范围 全局 动态 否 类型 整数 默认值 N/A
最小值 1
最大值 255
最大值 63
在 NDB 集群中设置此 MySQL 服务器的节点 ID。
--ndb-nodeid
选项会覆盖使用--ndb-connectstring
设置的任何节点 ID,无论这两个选项的使用顺序如何。此外,如果使用
--ndb-nodeid
,则必须在[mysqld]
或[api]
部分的config.ini
中找到匹配的节点 ID,或者文件(即,没有指定NodeId
或Id
参数的部分)中必须存在一个 “open”[mysqld]
或[api]
部分。如果节点 ID 是作为连接字符串的一部分指定的,这也是正确的。无论如何确定节点 ID,它都将显示为
SHOW STATUS
输出中的全局状态变量Ndb_cluster_node_id
的值,以及SHOW ENGINE NDBCLUSTER STATUS
输出的connection
行中的cluster_node_id
。有关 NDB 集群 SQL 节点的节点 ID 的更多信息,请参见 第 25.4.3.7 节,“在 NDB 集群中定义 SQL 和其他 API 节点”。
-
命令行格式 --ndbinfo[=value]
类型 枚举 默认值 ON
有效值 ON
OFF
FORCE
启用
ndbinfo
信息数据库的插件。默认情况下,只要启用NDBCLUSTER
,它就会处于 ON 状态。 --ndb-optimization-delay=
milliseconds
命令行格式 --ndb-optimization-delay=#
系统变量 ndb_optimization_delay
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 10
最小值 0
最大值 100000
单位 milliseconds 通过
OPTIMIZE TABLE
语句在NDB
表上设置行集之间等待的毫秒数。默认值为 10。--ndb-optimized-node-selection
命令行格式 --ndb-optimized-node-selection
为事务选择节点启用优化。默认情况下启用;使用
--skip-ndb-optimized-node-selection
禁用。-
命令行格式 --ndb-tls-search-path=path
系统变量 ndb_tls_search_path
范围 全局 动态 否 SET_VAR
提示适用否 类型 路径名 默认值(Unix) $HOME/tls
默认值(Windows) $HOMEDIR/tls
用于搜索 NDB TLS 连接的 CA 和私钥的目录列表。该列表在 Unix 平台上以逗号分隔,在 Windows 上以分号分隔。
--ndb-transid-mysql-connection-map=
state
命令行格式 --ndb-transid-mysql-connection-map[=state]
类型 枚举 默认值 ON
有效值 ON
OFF
FORCE
启用或禁用处理
ndb_transid_mysql_connection_map
表的插件INFORMATION_SCHEMA
数据库中。取值为ON
、OFF
或FORCE
之一。ON
(默认值)启用插件。OFF
禁用插件,这使得ndb_transid_mysql_connection_map
无法访问。FORCE
使 MySQL 服务器在插件加载和启动失败时无法启动。您可以通过检查
SHOW PLUGINS
的输出,查看ndb_transid_mysql_connection_map
表插件是否正在运行。-
命令行格式 --ndb-wait-connected=#
系统变量 ndb_wait_connected
范围 全局 动态 否 SET_VAR
提示适用否 类型 整数 默认值 120
默认值 30
最小值 0
最大值 31536000
单位 秒 此选项设置 MySQL 服务器等待与 NDB Cluster 管理和数据节点建立连接的时间段,然后再接受 MySQL 客户端连接。时间以秒为单位指定。默认值为
30
。 -
命令行格式 --ndb-wait-setup=#
系统变量 ndb_wait_setup
范围 全局 动态 否 SET_VAR
提示适用否 类型 整数 默认值 120
默认值 30
默认值 15
默认值 15
最小值 0
最大值 31536000
单位 秒 此变量显示 MySQL 服务器等待
NDB
存储引擎完成设置的时间段,然后再超时并将NDB
视为不可用。时间以秒为单位指定。默认值为30
。 -
命令行格式 --skip-ndbcluster
禁用
NDBCLUSTER
存储引擎。这是在构建了NDBCLUSTER
存储引擎支持的二进制文件中的默认值;服务器仅在明确给出--ndbcluster
选项时,才会为该存储引擎分配内存和其他资源。有关示例,请参见 第 25.4.1 节,“NDB Cluster 的快速测试设置”。
本节详细介绍了特定于 NDB Cluster 和 NDB
存储引擎的 MySQL 服务器系统变量。有关不特定于 NDB Cluster 的系统变量,请参见 第 7.1.8 节,“服务器系统变量”。有关使用系统变量的一般信息,请参见 第 7.1.9 节,“使用系统变量”。
-
命令行格式 --ndb-autoincrement-prefetch-sz=#
系统变量 ndb_autoincrement_prefetch_sz
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 整数 默认值 512
最小值 1
最大值 65536
确定自动递增列中间隙的概率。将其设置为
1
以最小化此概率。为了优化,将其设置为较高的值会使插入更快,但会降低在插入批次中使用连续自动递增编号的可能性。此变量仅影响在语句之间获取的
AUTO_INCREMENT
ID 数量;在给定语句内,一次至少获取 32 个 ID。重要此变量不会影响使用
INSERT ... SELECT
执行的插入。 -
命令行格式 --ndb-clear-apply-status[={OFF|ON}]
系统变量 ndb_clear_apply_status
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
默认情况下,执行
RESET REPLICA
会导致 NDB Cluster 副本从其ndb_apply_status
表中清除所有行。您可以通过设置ndb_clear_apply_status=OFF
来禁用此功能。 -
命令行格式 --ndb-conflict-role=value
系统变量 ndb_conflict_role
范围 全局 动态 是 SET_VAR
提示适用否 类型 枚举 默认值 NONE
有效值 NONE
PRIMARY
SECONDARY
PASS
确定此 SQL 节点(和 NDB Cluster)在循环 (“active-active”) 复制设置中的角色。
ndb_conflict_role
可以取PRIMARY
、SECONDARY
、PASS
或NULL
(默认值)中的任何一个值。在更改ndb_conflict_role
之前,必须停止副本 SQL 线程。此外,无法直接在PASS
和PRIMARY
或SECONDARY
之间直接更改;在这种情况下,您必须确保 SQL 线程已停止,然后首先执行SET @@GLOBAL.ndb_conflict_role = 'NONE'
。此变量替换了已弃用的
ndb_slave_conflict_role
。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
-
命令行格式 --ndb-data-node-neighbour=#
系统变量 ndb_data_node_neighbour
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 0
最小值 0
最大值 255
设置 “最近” 数据节点的 ID——也就是说,会选择一个首选的非本地数据节点来执行事务,而不是一个与 SQL 或 API 节点运行在同一主机上的节点。这用于确保当访问完全复制的表时,我们会访问此数据节点,以确保始终使用该表的本地副本,只要有可能。这也可以用来提供事务提示。
在物理上比同一主机上的其他节点更近,并且网络吞吐量更高的情况下,这可以提高数据访问时间。
有关更多信息,请参见 第 15.1.20.12 节,“设置 NDB 注释选项”。
注意在 NDB API 应用程序中,提供了一种等效的方法
set_data_node_neighbour()
。 -
命令行格式 --ndb-dbg-check-shares=#
系统变量 ndb_dbg_check_shares
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 整数 默认值 0
最小值 0
最大值 1
设置为 1 时,检查是否有任何共享正在保留。仅在调试版本中可用。
-
命令行格式 --ndb-default-column-format={FIXED|DYNAMIC}
系统变量 ndb_default_column_format
范围 全局 动态 是 SET_VAR
提示适用否 类型 枚举 默认值 FIXED
有效值 FIXED
DYNAMIC
为新表设置默认
COLUMN_FORMAT
和ROW_FORMAT
(请参见 第 15.1.20 节,“CREATE TABLE 语句”)。默认值为FIXED
。 -
命令行格式 --ndb-deferred-constraints=#
系统变量 ndb_deferred_constraints
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 整数 默认值 0
最小值 0
最大值 1
控制约束检查是否被延迟,在支持的情况下。
0
是默认值。此变量通常不需要用于 NDB Cluster 或 NDB Cluster 复制的操作,主要用于测试。
-
命令行格式 --ndb-distribution={KEYHASH|LINHASH}
系统变量 ndb_distribution
范围 全局 动态 是 SET_VAR
提示适用否 类型 枚举 默认值 KEYHASH
有效值 LINHASH
KEYHASH
控制
NDB
表的默认分配方法。可以设置为KEYHASH
(键散列)或LINHASH
(线性散列)中的任何一个。KEYHASH
是默认值。 -
命令行格式 --ndb-eventbuffer-free-percent=#
系统变量 ndb_eventbuffer_free_percent
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 20
最小值 1
最大值 99
设置事件缓冲区分配的最大内存百分比(ndb_eventbuffer_max_alloc),该百分比应在达到最大值后在事件缓冲区中可用,然后才能再次开始缓冲。
-
命令行格式 --ndb-eventbuffer-max-alloc=#
系统变量 ndb_eventbuffer_max_alloc
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 0
最小值 0
最大值 9223372036854775807
设置 NDB API 可以分配的用于缓冲事件的内存量(以字节为单位)。0 表示没有限制,也是默认值。
-
命令行格式 ndb_extra_logging=#
系统变量 ndb_extra_logging
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 1
最小值 0
最大值 1
此变量启用将特定于
NDB
存储引擎的信息记录到 MySQL 错误日志中。当此变量设置为 0 时,写入 MySQL 错误日志中与
NDB
特定相关的信息仅与事务处理有关。如果它设置为大于 0 但小于 10 的值,NDB
表模式和连接事件也会被记录,以及是否使用冲突解决,以及其他NDB
错误和信息。如果该值设置为 10 或更大,有关NDB
内部信息的信息(例如,数据在集群节点之间分配的进度)也会写入 MySQL 错误日志中。默认值为 1。 -
命令行格式 --ndb-force-send[={OFF|ON}]
系统变量 ndb_force_send
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
强制将缓冲区立即发送到
NDB
,而不等待其他线程。默认值为ON
。 -
命令行格式 --ndb-fully-replicated[={OFF|ON}]
系统变量 ndb_fully_replicated
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
确定新的
NDB
表是否完全复制。此设置可以使用CREATE TABLE
或ALTER TABLE
语句中的COMMENT="NDB_TABLE=FULLY_REPLICATED=..."
为单个表覆盖。有关语法和其他信息,请参见 第 15.1.20.12 节,“设置 NDB 注释选项”。 -
命令行格式 --ndb-index-stat-enable[={OFF|ON}]
系统变量 ndb_index_stat_enable
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
在查询优化中使用
NDB
索引统计信息。默认值为ON
。无论此选项的值如何,索引统计信息表都会在服务器启动时始终创建。
-
命令行格式 --ndb-index-stat-option=value
系统变量 ndb_index_stat_option
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 字符串 默认值 loop_checkon=1000ms,loop_idle=1000ms,loop_busy=100ms, update_batch=1,read_batch=4,idle_batch=32,check_batch=32, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M, cache_lowpct=90
此变量用于提供 NDB 索引统计信息生成的调整选项。该列表包含以逗号分隔的选项名称和值的名称-值对,并且该列表不能包含任何空格字符。
设置
ndb_index_stat_option
时未使用的选项不会从其默认值更改。例如,您可以设置ndb_index_stat_option = 'loop_idle=1000ms,cache_limit=32M'
。时间值可以选择性地添加
h
(小时)、m
(分钟)或s
(秒)后缀。毫秒值可以选择性地使用ms
指定;毫秒值不能使用h
、m
或s
指定。)整数值可以添加K
、M
或G
后缀。可以使用此变量设置的选项名称在下面的表格中显示。该表格还提供了选项的简要描述、它们的默认值以及(如果适用)它们的最小值和最大值。
表 25.19 ndb_index_stat_option 选项和值
名称 描述 默认/单位 最小/最大 loop_enable
1000 毫秒 0/4G loop_idle
空闲时睡眠的时间 1000 毫秒 0/4G loop_busy
有更多工作等待时睡眠的时间 100 毫秒 0/4G update_batch
1 0/4G read_batch
4 1/4G idle_batch
32 1/4G check_batch
8 1/4G check_delay
检查新统计信息的时间间隔 10 分钟 1/4G delete_batch
8 0/4G clean_delay
1 分钟 0/4G error_batch
4 1/4G error_delay
1 分钟 1/4G evict_batch
8 1/4G evict_delay
清理 LRU 缓存,从读取时间算起 1 分钟 0/4G cache_limit
此 mysqld 用于缓存索引统计信息的内存最大字节数;超过此值时清理缓存。 32 M 0/4G cache_lowpct
90 0/100 zero_total
将此值设置为 1 会将 ndb_index_stat_status
中所有累积计数器重置为 0。完成此操作后,此选项值也会重置为 0。0 0/1 -
系统变量 ndb_join_pushdown
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
此变量控制是否将
NDB
表上的联接下推到 NDB 内核(数据节点)。以前,联接使用 SQL 节点对NDB
的多次访问来处理;但是,当ndb_join_pushdown
启用时,可下推的联接将完整地发送到数据节点,在那里它可以在数据节点之间分配并并行执行在数据的多个副本上,并将单个合并结果返回到 mysqld。这可以大大减少处理此类联接所需的 SQL 节点和数据节点之间的往返次数。默认情况下,
ndb_join_pushdown
已启用。NDB 下推联接的条件。 为了使联接可下推,它必须满足以下条件
只能比较列,并且所有要联接的列必须使用 完全 相同的数据类型。这意味着(例如)在
INT
列和BIGINT
列上进行联接也不能下推。比较来自同一表的列的表达式也可以下推。这些列(或对这些列进行任何操作的结果)必须完全相同类型,包括相同的符号、长度、字符集和排序规则、精度和比例,这些在适用时。
不支持显式锁定;但是,
NDB
存储引擎的典型隐式基于行的锁定得到强制执行。这意味着使用
FOR UPDATE
的联接无法下推。为了使联接能够下推,联接中的子表必须使用以下方法之一访问:
ref
、eq_ref
或const
访问方法,或这些方法的某种组合。外部联接子表只能使用
eq_ref
下推。如果下推联接的根节点是
eq_ref
或const
,则只能附加由eq_ref
联接的子表。(由ref
联接的表很可能成为另一组下推表的根节点。)如果查询优化器决定对候选子表使用
Using join cache
,则该表无法作为子表下推。但是,它可能是另一组下推表的根节点。引用由
[LINEAR] HASH
、LIST
或RANGE
显式分区的表的联接当前无法下推。
您可以使用
EXPLAIN
检查给定联接是否可以下推;当联接可以下推时,您可以在输出的Extra
列中看到对pushed join
的引用,如以下示例所示mysql> EXPLAIN -> SELECT e.first_name, e.last_name, t.title, d.dept_name -> FROM employees e -> JOIN dept_emp de ON e.emp_no=de.emp_no -> JOIN departments d ON d.dept_no=de.dept_no -> JOIN titles t ON e.emp_no=t.emp_no\G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: d type: ALL possible_keys: PRIMARY key: NULL key_len: NULL ref: NULL rows: 9 Extra: Parent of 4 pushed join@1 *************************** 2. row *************************** id: 1 select_type: SIMPLE table: de type: ref possible_keys: PRIMARY,emp_no,dept_no key: dept_no key_len: 4 ref: employees.d.dept_no rows: 5305 Extra: Child of 'd' in pushed join@1 *************************** 3. row *************************** id: 1 select_type: SIMPLE table: e type: eq_ref possible_keys: PRIMARY key: PRIMARY key_len: 4 ref: employees.de.emp_no rows: 1 Extra: Child of 'de' in pushed join@1 *************************** 4. row *************************** id: 1 select_type: SIMPLE table: t type: ref possible_keys: PRIMARY,emp_no key: emp_no key_len: 4 ref: employees.de.emp_no rows: 19 Extra: Child of 'e' in pushed join@1 4 rows in set (0.00 sec)
注意如果内部联接子表由
ref
联接,并且 结果按排序索引排序或分组,则此索引无法提供排序行,这将强制写入排序临时文件。可以获得有关下推联接性能的两个额外信息来源
-
命令行格式 --ndb-log-apply-status[={OFF|ON}]
系统变量 ndb_log_apply_status
范围 全局 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
一个只读变量,显示服务器是否使用
--ndb-log-apply-status
选项启动。 -
命令行格式 --ndb-log-bin[={OFF|ON}]
系统变量 ndb_log_bin
范围 全局,会话 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
导致对
NDB
表的更新写入二进制日志。如果服务器尚未使用log_bin
启用二进制日志记录,则此变量的设置无效。ndb_log_bin
默认值为 0(FALSE)。 -
命令行格式 --ndb-log-binlog-index[={OFF|ON}]
系统变量 ndb_log_binlog_index
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
导致将时期到二进制日志位置的映射插入到
ndb_binlog_index
表中。如果尚未使用log_bin
为服务器启用二进制日志记录,则设置此变量无效。(此外,ndb_log_bin
不能被禁用。)ndb_log_binlog_index
默认值为1
(ON
);通常,在生产环境中永远不需要更改此值。 -
命令行格式 --ndb-log-empty-epochs[={OFF|ON}]
系统变量 ndb_log_empty_epochs
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
当此变量设置为 0 时,没有更改的时期事务不会写入二进制日志,尽管即使是空时期,仍然会在
ndb_binlog_index
中写入一行。 -
命令行格式 --ndb-log-empty-update[={OFF|ON}]
系统变量 ndb_log_empty_update
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
当此变量设置为
ON
(1
) 时,即使log_replica_updates
启用,没有更改的更新事务也会写入二进制日志。 -
命令行格式 --ndb-log-exclusive-reads[={OFF|ON}]
系统变量 ndb_log_exclusive_reads
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 0
此变量确定是否使用独占锁记录主键读取,这允许 NDB Cluster 复制基于读取冲突的冲突检测和解决。要启用这些锁,请将
ndb_log_exclusive_reads
的值设置为 1。0 是默认值,它会禁用这种锁定。有关更多信息,请参见 读取冲突检测和解决。
-
命令行格式 --ndb-log-orig[={OFF|ON}]
系统变量 ndb_log_orig
范围 全局 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
显示是否在
ndb_binlog_index
表中记录了原始服务器 ID 和时期。使用--ndb-log-orig
服务器选项设置。 -
系统变量 ndb_log_transaction_id
范围 全局 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
此只读布尔系统变量显示副本 mysqld 是否在二进制日志中写入 NDB 事务 ID(需要使用 “active-active” NDB Cluster 复制以及
NDB$EPOCH_TRANS()
冲突检测)。要更改设置,请使用--ndb-log-transaction-id
选项。ndb_log_transaction_id
在主线 MySQL Server 9.0 中不受支持。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
ndb_log_transaction_compression
命令行格式 --ndb-log-transaction-compression
系统变量 ndb_log_transaction_compression
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
副本 mysqld 是否在二进制日志中写入压缩的事务;仅在 mysqld 已编译为支持
NDB
时存在。您应该注意,使用
--binlog-transaction-compression
启动 MySQL 服务器会强制启用此变量 (ON
),并且这会覆盖在命令行或my.cnf
文件中对--ndb-log-transaction-compression
所做的任何设置,如下所示$> mysqld_safe --ndbcluster --ndb-connectstring=127.0.0.1 \ --binlog-transaction-compression=ON --ndb-log-transaction-compression=OFF & [1] 27667 $> 2022-07-07T12:29:20.459937Z mysqld_safe Logging to '/usr/local/mysql/data/myhost.err'. 2022-07-07T12:29:20.509873Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data $> mysql -e 'SHOW VARIABLES LIKE "%transaction_compression%"' +--------------------------------------------+-------+ | Variable_name | Value | +--------------------------------------------+-------+ | binlog_transaction_compression | ON | | binlog_transaction_compression_level_zstd | 3 | | ndb_log_transaction_compression | ON | | ndb_log_transaction_compression_level_zstd | 3 | +--------------------------------------------+-------+
要仅对
NDB
表禁用二进制日志事务压缩,请在启动 mysqld 后,在 mysql 或其他客户端会话中将ndb_log_transaction_compression
系统变量设置为OFF
。启动后设置
binlog_transaction_compression
变量不会影响ndb_log_transaction_compression
的值。有关二进制日志事务压缩的更多信息,例如哪些事件被压缩或未被压缩,以及使用此功能时需要注意的行为更改,请参见第 7.4.4.5 节,“二进制日志事务压缩”。
ndb_log_transaction_compression_level_zstd
命令行格式 --ndb-log-transaction-compression-level-zstd=#
系统变量 ndb_log_transaction_compression_level_zstd
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 3
最小值 1
最大值 22
如果
ndb_log_transaction_compression
启用,则用于将压缩事务写入副本二进制日志的ZSTD
压缩级别。如果 mysqld 未编译为支持NDB
存储引擎,则不支持此功能。有关更多信息,请参见第 7.4.4.5 节,“二进制日志事务压缩”。
-
命令行格式 --ndb-metadata-check[={OFF|ON}]
系统变量 ndb_metadata_check
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
NDB
使用后台线程每ndb_metadata_check_interval
秒检查一次元数据更改,与 MySQL 数据字典进行比较。可以通过将ndb_metadata_check
设置为OFF
来禁用此元数据更改检测线程。该线程默认情况下处于启用状态。 -
命令行格式 --ndb-metadata-check-interval=#
系统变量 ndb_metadata_check_interval
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 60
最小值 0
最大值 31536000
单位 秒 NDB
在后台运行元数据更改检测线程,以确定 NDB 字典何时相对于 MySQL 数据字典发生更改。默认情况下,此类检查之间的间隔为 60 秒;可以通过设置ndb_metadata_check_interval
的值来调整此间隔。要启用或禁用线程,请使用ndb_metadata_check
。 -
系统变量 ndb_metadata_sync
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 false
设置此变量会导致更改监视器线程覆盖为
ndb_metadata_check
或ndb_metadata_check_interval
设置的任何值,并进入持续更改检测阶段。当线程确定不再需要检测更改时,它会暂停,直到二进制日志记录线程完成所有检测到的对象的同步。然后将ndb_metadata_sync
设置为false
,并且更改监视器线程恢复到由ndb_metadata_check
和ndb_metadata_check_interval
设置确定的行为。将此变量设置为
true
会导致排除对象列表被清除;将其设置为false
会清除要重试的对象列表。 -
命令行格式 --ndb-optimized-node-selection=#
系统变量 ndb_optimized_node_selection
范围 全局 动态 否 SET_VAR
提示适用否 类型 整数 默认值 3
最小值 0
最大值 3
有两种形式的优化节点选择,此处进行了描述。
SQL 节点使用 邻近度 来确定事务协调器;也就是说,选择 “最接近” 的数据节点作为事务协调器。为此,与 SQL 节点具有共享内存连接的数据节点被认为是 “最接近” 的 SQL 节点;下一个最接近的(按邻近度递减排列)是:到
localhost
的 TCP 连接,然后是来自除localhost
之外的其他主机上的 TCP 连接。SQL 线程使用 分布式感知 来选择数据节点。也就是说,包含给定事务的第一个语句访问的集群分区的那个数据节点被用作整个事务的事务协调器。(这仅在事务的第一个语句访问的集群分区不超过一个时才有效。)
此选项采用以下整数之一:
0
、1
、2
或3
。3
是默认值。这些值会影响节点选择,如下所示。0
:节点选择未优化。每个数据节点被用作事务协调器 8 次,然后 SQL 线程继续进行到下一个数据节点。1
:与 SQL 节点的邻近度用于确定事务协调器。2
:使用分布式感知来选择事务协调器。但是,如果事务的第一个语句访问了多个集群分区,则 SQL 节点会恢复到此选项设置为0
时看到的循环行为。3
:如果可以使用分布式感知来确定事务协调器,则使用它;否则,使用邻近度来选择事务协调器。(这是默认行为。)
邻近度确定如下。
从为
Group
参数设置的值开始(默认值为 55)。对于与其他 API 节点共享同一主机的 API 节点,将该值减 1。假设
Group
的默认值,与 API 节点位于同一主机的 API 节点的有效值为 54,而远程数据节点的有效值为 55。设置
ndb_data_node_neighbour
会进一步将有效Group
值减 50,从而导致该节点被视为最接近的节点。只有在所有数据节点都位于 API 节点所处主机的其他主机上,并且需要将其中一个节点专用于 API 节点时才需要这样做。在正常情况下,前面描述的默认调整就足够了。
不建议频繁更改
ndb_data_node_neighbour
,因为这会改变集群连接的状态,因此可能会中断每个线程新事务的选择算法,直到它稳定下来。 -
命令行格式 --ndb-read-backup[={OFF|ON}]
系统变量 ndb_read_backup
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
启用从任何片段副本读取任何随后创建的
NDB
表;这样做极大地提高了表读取性能,而对写入的影响相对较小。如果 SQL 节点和数据节点使用相同的 hostname 或 IP 地址,则会自动检测到此情况,因此优先选择将读取发送到同一主机。如果这些节点位于同一主机但使用不同的 IP 地址,则可以通过在 SQL 节点上将
ndb_data_node_neighbour
的值设置为数据节点的节点 ID 来告知 SQL 节点使用正确的数据节点。要启用或禁用从任何片段副本读取单个表,可以相应地设置表的
NDB_TABLE
选项READ_BACKUP
,在CREATE TABLE
或ALTER TABLE
语句中;有关更多信息,请参见第 15.1.20.12 节,“设置 NDB 注释选项”。 ndb_recv_thread_activation_threshold
命令行格式 --ndb-recv-thread-activation-threshold=#
系统变量 ndb_recv_thread_activation_threshold
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 8
最小值 0 (MIN_ACTIVATION_THRESHOLD)
最大值 16 (MAX_ACTIVATION_THRESHOLD)
当达到此数量的并发活动线程时,接收线程接管对集群连接的轮询。
此变量的作用域是全局的。它也可以在启动时设置。
-
命令行格式 --ndb-recv-thread-cpu-mask=mask
系统变量 ndb_recv_thread_cpu_mask
范围 全局 动态 是 SET_VAR
提示适用否 类型 位图 默认值 [empty]
用于将接收线程锁定到特定 CPU 的 CPU 掩码。这指定为十六进制位掩码。例如,
0x33
表示每个接收线程使用一个 CPU。空字符串是默认值;将ndb_recv_thread_cpu_mask
设置为该值将删除先前设置的任何接收线程锁定。此变量的作用域是全局的。它也可以在启动时设置。
ndb_report_thresh_binlog_epoch_slip
命令行格式 --ndb-report-thresh-binlog-epoch-slip=#
系统变量 ndb_report_thresh_binlog_epoch_slip
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 10
最小值 0
最大值 256
这表示事件缓冲区中完全缓冲但尚未被 binlog 注入器线程消耗的时期的数量的阈值。当此程度的滑动(延迟)超过阈值时,会报告事件缓冲区状态消息,其中提供
BUFFERED_EPOCHS_OVER_THRESHOLD
作为原因(请参见第 25.6.2.3 节,“集群日志中的事件缓冲区报告”)。当从数据节点接收一个时期并在事件缓冲区中完全缓冲时,滑动会增加;当 binlog 注入器线程消耗一个时期时,滑动会减少。空时期会被缓冲和排队,因此只有在使用Ndb::setEventBufferQueueEmptyEpoch()
方法(来自 NDB API)启用此功能时,才会将其包含在此计算中。ndb_report_thresh_binlog_mem_usage
命令行格式 --ndb-report-thresh-binlog-mem-usage=#
系统变量 ndb_report_thresh_binlog_mem_usage
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 10
最小值 0
最大值 10
这是在报告二进制日志状态之前剩余可用内存百分比的阈值。例如,值
10
(默认值)表示,如果用于从数据节点接收二进制日志数据的可用内存量低于 10%,则会向集群日志发送状态消息。-
系统变量 ndb_row_checksum
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 整数 默认值 1
最小值 0
最大值 1
传统上,
NDB
会创建包含行校验和的表,该校验和会检查硬件问题,但会牺牲性能。将ndb_row_checksum
设置为 0 表示不会为新表或更改后的表使用行校验和,这会对所有类型的查询的性能产生重大影响。此变量默认设置为 1,以提供向后兼容的行为。 ndb_schema_dist_lock_wait_timeout
命令行格式 --ndb-schema-dist-lock-wait-timeout=value
系统变量 ndb_schema_dist_lock_wait_timeout
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 30
最小值 0
最大值 1200
单位 秒 在架构分发过程中等待的秒数,以获取每个 SQL 节点上为更改其本地数据字典以反映 DDL 语句更改而采取的元数据锁定。在经过此时间后,会返回警告,提示已更改的某个 SQL 节点的本地数据字典尚未更新。这避免了二进制日志记录线程在处理架构操作时等待过长的时间。
-
命令行格式 --ndb-schema-dist-timeout=value
系统变量 ndb_schema_dist_timeout
范围 全局 动态 否 SET_VAR
提示适用否 类型 整数 默认值 120
最小值 5
最大值 1200
单位 秒 在检测到架构分发期间超时之前等待的秒数。这可能表明其他 SQL 节点正在经历过度的活动,或者它们以某种方式被阻止在此时获取必要的资源。
ndb_schema_dist_upgrade_allowed
命令行格式 --ndb-schema-dist-upgrade-allowed=value
系统变量 ndb_schema_dist_upgrade_allowed
范围 全局 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 true
允许在连接到
NDB
时升级模式分配表。当为真(默认值)时,此更改将延迟到所有 SQL 节点都升级到相同版本的 NDB Cluster 软件为止。注意模式分配的性能可能会在升级执行之前略有下降。
ndb_show_foreign_key_mock_tables
命令行格式 --ndb-show-foreign-key-mock-tables[={OFF|ON}]
系统变量 ndb_show_foreign_key_mock_tables
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
显示
NDB
用来支持foreign_key_checks=0
的模拟表。启用此功能时,在创建和删除表时会显示额外的警告。表的实际(内部)名称可以在SHOW CREATE TABLE
的输出中看到。-
命令行格式 --ndb-slave-conflict-role=value
已弃用 是 系统变量 ndb_slave_conflict_role
范围 全局 动态 是 SET_VAR
提示适用否 类型 枚举 默认值 NONE
有效值 NONE
PRIMARY
SECONDARY
PASS
ndb_conflict_role
的已弃用同义词。 -
系统变量 ndb_table_no_logging
范围 会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
当此变量设置为
ON
或1
时,它会导致使用ENGINE NDB
创建或更改的所有表都成为非日志型;也就是说,此表的任何数据更改都不会写入重做日志或检查点到磁盘,就像使用NOLOGGING
选项为CREATE TABLE
或ALTER TABLE
创建或更改表一样。有关非日志型
NDB
表的更多信息,请参见NDB_TABLE 选项。ndb_table_no_logging
对NDB
表模式文件的创建没有影响;要抑制这些文件,请使用ndb_table_temporary
。 -
系统变量 ndb_table_temporary
范围 会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
当设置为
ON
或1
时,此变量会导致NDB
表不会写入磁盘:这意味着不会创建任何表模式文件,并且表不会记录。注意目前设置此变量没有任何影响。这是一个已知问题;请参见错误 #34036。
-
系统变量 ndb_use_copying_alter_table
范围 全局,会话 动态 否 SET_VAR
提示适用否 强制
NDB
在遇到在线ALTER TABLE
操作问题时使用表复制。默认值为OFF
。 -
系统变量 ndb_use_exact_count
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
强制
NDB
在SELECT COUNT(*)
查询计划期间使用记录计数来加快此类查询的速度。默认值为OFF
,它允许总体上更快地执行查询。 -
命令行格式 --ndb-use-transactions[={OFF|ON}]
系统变量 ndb_use_transactions
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
可以通过将此变量的值设置为
OFF
来禁用NDB
事务支持。这通常不推荐,但可能在给定客户端会话中禁用事务支持时很有用,当该会话用于导入一个或多个包含大型事务的转储文件时;这允许将多行插入作为多个部分执行,而不是作为单个事务执行。在这种情况下,一旦导入完成,应该将此会话的变量值重置为ON
,或者只需终止该会话。 -
系统变量 ndb_version
范围 全局 动态 否 SET_VAR
提示适用否 类型 字符串 默认值 NDB
引擎版本,作为组合整数。 -
系统变量 ndb_version_string
范围 全局 动态 否 SET_VAR
提示适用否 类型 字符串 默认值 NDB
引擎版本,格式为ndb-
。x.y.z
-
命令行格式 --replica-allow-batching[={OFF|ON}]
系统变量 replica_allow_batching
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
是否在 NDB Cluster 副本上启用批量更新。
在副本上允许批量更新可以极大地提高性能,尤其是在复制
TEXT
、BLOB
和JSON
列时。出于这个原因,replica_allow_batching
默认情况下是启用的。仅当使用
NDB
存储引擎进行复制时,设置此变量才会产生影响;在 MySQL Server 9.0 中,它存在但不起作用。有关更多信息,请参见第 25.7.6 节“启动 NDB Cluster 复制(单个复制通道)”。 -
命令行格式 --ndb-replica-batch-size=#
系统变量 ndb_replica_batch_size
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 2097152
最小值 0
最大值 2147483648
单位 字节 确定复制应用程序线程使用的批量大小(以字节为单位)。设置此变量而不是
--ndb-batch-size
选项,以便将此设置应用于副本,不包括任何其他会话。如果此变量未设置(默认值为 2 MB),其有效值为
--ndb-batch-size
的值和 2 MB 之中的较大者。 ndb_replica_blob_write_batch_bytes
命令行格式 --ndb-replica-blob-write-batch-bytes=#
系统变量 ndb_replica_blob_write_batch_bytes
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 2097152
最小值 0
最大值 2147483648
单位 字节 控制复制应用程序线程对 blob 数据使用的批量写入大小。
使用此变量而不是
--ndb-blob-write-batch-bytes
选项来控制副本上的 blob 批量写入大小,不包括任何其他会话。这样做的原因是,当ndb_replica_blob_write_batch_bytes
未设置时,有效的 blob 批量大小(即,blob 列要写入的待处理字节的最大数量)由--ndb-blob-write-batch-bytes
的值和 2 MB(ndb_replica_blob_write_batch_bytes
的默认值)之中的较大者决定。将
ndb_replica_blob_write_batch_bytes
设置为 0 意味着NDB
不会对副本上的 blob 批量写入的大小施加任何限制。-
命令行格式 --server-id-bits=#
系统变量 server_id_bits
范围 全局 动态 否 SET_VAR
提示适用否 类型 整数 默认值 32
最小值 7
最大值 32
此变量表示 32 位
server_id
中实际标识服务器的最低有效位数。指示服务器实际上由少于 32 位标识,这使得某些剩余位可以用于其他目的,例如存储使用 NDB API 的事件 API 在OperationOptions
结构的AnyValue
中生成的应用程序用户数据(NDB Cluster 使用AnyValue
存储服务器 ID)。从
server_id
中提取有效服务器 ID 以用于检测复制循环等目的时,服务器会忽略剩余的位。当决定是否应根据服务器 ID 忽略事件时,server_id_bits
变量用于在 I/O 和 SQL 线程中屏蔽server_id
的任何无关位。此数据可以通过mysqlbinlog从二进制日志中读取,前提是它以其自己的
server_id_bits
变量设置为 32(默认值)运行。如果
server_id
的值大于或等于 2 的server_id_bits
次幂;否则,mysqld拒绝启动。此系统变量仅受 NDB Cluster 支持。它在标准 MySQL 9.0 服务器中不受支持。
-
命令行格式 --slave-allow-batching[={OFF|ON}]
已弃用 是 系统变量 slave_allow_batching
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
replica_allow_batching
的已弃用同义词。 -
系统变量 transaction_allow_batching
范围 会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
当设置为
1
或ON
时,此变量启用同一事务内语句的批处理。要使用此变量,必须首先通过将其设置为0
或OFF
来禁用autocommit
;否则,设置transaction_allow_batching
将不会产生任何影响。将此变量与仅执行写入的事务一起使用是安全的,因为启用它会导致从“before”图像中读取。在发出
SELECT
之前,应确保任何挂起的事务都被提交(如果需要,可以使用显式的COMMIT
)。重要在可能存在给定语句的效果取决于同一事务中先前语句的结果的情况下,不应使用
transaction_allow_batching
。此变量目前仅受 NDB Cluster 支持。
以下列表中的系统变量都与ndbinfo
信息数据库相关。
-
系统变量 ndbinfo_database
范围 全局 动态 否 SET_VAR
提示适用否 类型 字符串 默认值 ndbinfo
显示用于
NDB
信息数据库的名称;默认值为ndbinfo
。这是一个只读变量,其值在编译时确定。 -
命令行格式 --ndbinfo-max-bytes=#
系统变量 ndbinfo_max_bytes
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 整数 默认值 0
最小值 0
最大值 65535
仅用于测试和调试。
-
命令行格式 --ndbinfo-max-rows=#
系统变量 ndbinfo_max_rows
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 整数 默认值 10
最小值 1
最大值 256
仅用于测试和调试。
-
系统变量 ndbinfo_offline
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
将
ndbinfo
数据库置于离线模式,在这种模式下,即使表和视图实际不存在或存在但具有不同的定义,也可以打开它们NDB
。不会从这样的表(或视图)返回任何行。 -
命令行格式 --ndbinfo-show-hidden[={OFF|ON}]
系统变量 ndbinfo_show_hidden
范围 全局,会话 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
有效值 ON
OFF
是否在mysql 客户端中显示
ndbinfo
数据库的底层内部表。默认值为OFF
。注意当
ndbinfo_show_hidden
启用时,内部表仅在ndbinfo
数据库中显示;无论变量的设置如何,它们在TABLES
或其他INFORMATION_SCHEMA
表中不可见。 -
系统变量 ndbinfo_table_prefix
范围 全局 动态 否 SET_VAR
提示适用否 类型 字符串 默认值 ndb$
用于命名 ndbinfo 数据库的基本表(通常隐藏,除非通过设置
ndbinfo_show_hidden
来公开)的前缀。这是一个只读变量,其默认值为ndb$
;前缀本身是在编译时确定的。 -
系统变量 ndbinfo_version
范围 全局 动态 否 SET_VAR
提示适用否 类型 字符串 默认值 显示正在使用的
ndbinfo
引擎的版本;只读。
本节提供有关与 NDB 集群和NDB
存储引擎相关的 MySQL 服务器状态变量的详细信息。有关不特定于 NDB 集群的状态变量以及使用状态变量的常规信息,请参见第 7.1.10 节,“服务器状态变量”。
MySQL 服务器可以询问
NDBCLUSTER
存储引擎是否知道具有给定名称的表。这被称为发现。Handler_discover
指示使用此机制发现表的次数。Ndb_api_adaptive_send_deferred_count
未实际发送的自适应发送调用的数量。
有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_adaptive_send_deferred_count_session
未实际发送的自适应发送调用的数量。
有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_adaptive_send_deferred_count_replica
此副本未实际发送的自适应发送调用的数量。
有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_adaptive_send_deferred_count_slave
Ndb_api_adaptive_send_forced_count
此 MySQL 服务器(SQL 节点)使用强制发送发送的自适应发送调用的数量。
有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_adaptive_send_forced_count_session
在此客户端会话中使用强制发送发送的自适应发送调用的数量。
有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_adaptive_send_forced_count_replica
此副本使用强制发送发送的自适应发送调用的数量。
有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_adaptive_send_forced_count_slave
Ndb_api_adaptive_send_unforced_count
此 MySQL 服务器(SQL 节点)未使用强制发送发送的自适应发送调用的数量。
有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_adaptive_send_unforced_count_session
在此客户端会话中未使用强制发送发送的自适应发送调用的数量。
有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_adaptive_send_unforced_count_replica
此副本未使用强制发送发送的自适应发送调用的数量。
有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_adaptive_send_unforced_count_slave
Ndb_api_bytes_sent_count_session
在此客户端会话中发送到数据节点的数据量(以字节为单位)。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_bytes_sent_count_replica
此副本发送到数据节点的数据量(以字节为单位)。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_bytes_sent_count_slave
Ndb_api_bytes_sent_count_replica
的过时同义词。此 MySQL 服务器(SQL 节点)发送到数据节点的数据量(以字节为单位)。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_bytes_received_count_session
在此客户端会话中从数据节点接收的数据量(以字节为单位)。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_bytes_received_count_replica
此副本从数据节点接收的数据量(以字节为单位)。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_bytes_received_count_slave
此 MySQL 服务器(SQL 节点)从数据节点接收的数据量(以字节为单位)。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_event_data_count_injector
NDB binlog 注射器线程接收的行更改事件的数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
此 MySQL 服务器(SQL 节点)接收的行更改事件的数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_event_nondata_count_injector
NDB 二进制日志注射器线程接收的除了行更改事件之外的事件数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
此 MySQL 服务器(SQL 节点)接收的除了行更改事件之外的事件数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_event_bytes_count_injector
NDB binlog 注射器线程接收的事件的字节数。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
此 MySQL 服务器(SQL 节点)接收的事件的字节数。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
在此客户端会话中基于或使用主键的操作数量。这包括对 blob 表的操作、隐式解锁操作和自动递增操作,以及用户可见的主键操作。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
此副本基于或使用主键的操作数量。这包括对 blob 表的操作、隐式解锁操作和自动递增操作,以及用户可见的主键操作。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_pk_op_count_replica
的过时同义词。此 MySQL 服务器(SQL 节点)基于或使用主键的操作数量。这包括对 blob 表的操作、隐式解锁操作和自动递增操作,以及用户可见的主键操作。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_pruned_scan_count_session
在此客户端会话中已修剪到单个分区的扫描数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_pruned_scan_count_replica
此副本已修剪到单个分区的扫描数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_pruned_scan_count_slave
此 MySQL 服务器(SQL 节点)执行的扫描次数,这些扫描已修剪到单个分区。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_range_scan_count_session
在此客户端会话中开始的范围扫描次数。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_range_scan_count_replica
此副本开始的范围扫描次数。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_range_scan_count_slave
Ndb_api_range_scan_count_replica
的已弃用同义词。此 MySQL 服务器(SQL 节点)开始的范围扫描次数。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_read_row_count_session
在此客户端会话中读取的行总数。这包括在此客户端会话中进行的任何主键、唯一键或扫描操作读取的所有行。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_read_row_count_replica
此副本读取的行总数。这包括此副本进行的任何主键、唯一键或扫描操作读取的所有行。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_read_row_count_replica
的已弃用同义词。此 MySQL 服务器(SQL 节点)读取的行总数。这包括此 MySQL 服务器(SQL 节点)进行的任何主键、唯一键或扫描操作读取的所有行。
您应该知道,此值在通过
SELECT
COUNT(*)
查询读取的行数方面可能不完全准确,因为在这种情况下,MySQL 服务器实际上读取的是伪行,形式为[
,并将每个片段中的行数加起来,以获得对表中所有行的估计计数。表片段 ID
]:[片段中的行数
]Ndb_api_read_row_count
使用此估计值,而不是表中的实际行数。虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_scan_batch_count_session
在此客户端会话中接收的行批次数量。1 批次定义为来自单个片段的一组扫描结果。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_scan_batch_count_replica
此副本接收的行批次数量。1 批次定义为来自单个片段的一组扫描结果。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_scan_batch_count_slave
Ndb_api_scan_batch_count_replica
的已弃用同义词。此 MySQL 服务器(SQL 节点)接收的行批次数量。1 批次定义为来自单个片段的一组扫描结果。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_table_scan_count_session
在此客户端会话中开始的表扫描次数,包括对内部表的扫描。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_table_scan_count_replica
此副本开始的表扫描次数,包括对内部表的扫描。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_table_scan_count_slave
Ndb_api_table_scan_count_replica
的已弃用同义词。此 MySQL 服务器(SQL 节点)开始的表扫描次数,包括对内部表的扫描。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_abort_count_session
在此客户端会话中中止的事务数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_abort_count_replica
此副本中止的事务数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_abort_count_slave
Ndb_api_trans_abort_count_replica
的已弃用同义词。此 MySQL 服务器(SQL 节点)中止的事务数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_close_count_session
在此客户端会话中关闭的事务数量。此值可能大于
Ndb_api_trans_commit_count_session
和Ndb_api_trans_abort_count_session
的总和,因为某些事务可能已回滚。虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_close_count_replica
此副本关闭的事务数量。此值可能大于
Ndb_api_trans_commit_count_replica
和Ndb_api_trans_abort_count_replica
的总和,因为某些事务可能已回滚。虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_close_count_slave
Ndb_api_trans_close_count_replica
的已弃用同义词。此 MySQL 服务器(SQL 节点)关闭的事务数量。此值可能大于
Ndb_api_trans_commit_count
和Ndb_api_trans_abort_count
的总和,因为某些事务可能已回滚。虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_commit_count_session
在此客户端会话中提交的事务数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_commit_count_replica
此副本提交的事务数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_commit_count_slave
Ndb_api_trans_commit_count_replica
的已弃用同义词。此 MySQL 服务器(SQL 节点)提交的事务数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_local_read_row_count_session
在此客户端会话中读取的行总数。这包括在此客户端会话中进行的任何主键、唯一键或扫描操作读取的所有行。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_local_read_row_count_replica
此副本读取的行总数。这包括此副本进行的任何主键、唯一键或扫描操作读取的所有行。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_local_read_row_count_slave
Ndb_api_trans_local_read_row_count
此 MySQL 服务器(SQL 节点)读取的行总数。这包括此 MySQL 服务器(SQL 节点)进行的任何主键、唯一键或扫描操作读取的所有行。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_start_count_session
在此客户端会话中开始的事务数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_start_count_replica
此副本开始的事务数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_trans_start_count_slave
Ndb_api_trans_start_count_replica
的已弃用同义词。此 MySQL 服务器(SQL 节点)开始的事务数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
在此客户端会话中基于唯一键或使用唯一键的操作数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
此副本基于唯一键或使用唯一键的操作数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_uk_op_count_replica
的已弃用同义词。此 MySQL 服务器(SQL 节点)基于唯一键或使用唯一键的操作数量。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_exec_complete_count_session
在此客户端会话中,线程被阻塞等待操作执行完成的次数。这包括所有
execute()
调用,以及对客户端不可见的 blob 和自动递增操作的隐式执行。虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_exec_complete_count_replica
此副本阻塞等待操作执行完成的次数。这包括所有
execute()
调用,以及对客户端不可见的 blob 和自动递增操作的隐式执行。虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_exec_complete_count_slave
Ndb_api_wait_exec_complete_count
线程被此 MySQL 服务器(SQL 节点)阻塞的次数,原因是等待操作执行完成。这包括所有
execute()
调用,以及客户端不可见的 blob 和自动递增操作的隐式执行。虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_meta_request_count_session
线程在此客户端会话中被阻塞的次数,原因是等待基于元数据的信号,例如 DDL 请求、新纪元以及事务记录的获取。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_meta_request_count_replica
线程被此副本阻塞的次数,原因是等待基于元数据的信号,例如 DDL 请求、新纪元以及事务记录的获取。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_meta_request_count_slave
Ndb_api_wait_meta_request_count
线程被此 MySQL 服务器(SQL 节点)阻塞的次数,原因是等待基于元数据的信号,例如 DDL 请求、新纪元以及事务记录的获取。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_nanos_count_session
在此客户端会话中等待数据节点的任何类型信号所花费的总时间(以纳秒为单位)。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_nanos_count_replica
此副本等待数据节点的任何类型信号所花费的总时间(以纳秒为单位)。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_nanos_count_slave
Ndb_api_wait_nanos_count_replica
的过时同义词。此 MySQL 服务器(SQL 节点)等待数据节点的任何类型信号所花费的总时间(以纳秒为单位)。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_scan_result_count_session
线程在此客户端会话中被阻塞的次数,原因是等待基于扫描的信号,例如等待扫描的更多结果,或者等待扫描关闭。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_scan_result_count_replica
线程被此副本阻塞的次数,原因是等待基于扫描的信号,例如等待扫描的更多结果,或者等待扫描关闭。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_wait_scan_result_count_slave
Ndb_api_wait_scan_result_count
线程被此 MySQL 服务器(SQL 节点)阻塞的次数,原因是等待基于扫描的信号,例如等待扫描的更多结果,或者等待扫描关闭。
虽然此变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
如果服务器充当 NDB Cluster 节点,则此变量的值为其在集群中的节点 ID。
如果服务器不是 NDB Cluster 的一部分,则此变量的值为 0。
如果服务器是 NDB Cluster 的一部分,则此变量的值为获取其配置数据的集群管理服务器的主机名或 IP 地址。
如果服务器不是 NDB Cluster 的一部分,则此变量的值为空字符串。
如果服务器是 NDB Cluster 的一部分,则此变量的值为通过其连接到获取其配置数据的集群管理服务器的端口号。
如果服务器不是 NDB Cluster 的一部分,则此变量的值为 0。
显示集群当前配置的代号。这可以作为指示器,以确定自此 SQL 节点上次连接到集群以来,集群的配置是否已更改。
此变量用于 NDB Cluster 复制冲突解决,显示自上次重启以来,在给定的 mysqld 上使用
NDB$EPOCH()
冲突解决找到的冲突行数。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
此变量用于 NDB Cluster 复制冲突解决,显示自上次重启以来,在给定的 mysqld 上使用
NDB$EPOCH_TRANS()
冲突解决找到的冲突行数。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
显示在 NDB Cluster 复制冲突解决中,使用
NDB$EPOCH2()
在指定为主服务器的源上找到的冲突行数,自上次重启以来。有关更多信息,请参见 NDB$EPOCH2()。
此变量用于 NDB Cluster 复制冲突解决,显示自上次重启以来,在给定的 mysqld 上使用
NDB$EPOCH_TRANS2()
冲突解决找到的冲突行数。有关更多信息,请参见 NDB$EPOCH2_TRANS()。
此变量用于 NDB Cluster 复制冲突解决,显示自上次启动此 mysqld 以来,由于“最大时间戳获胜”冲突解决,在当前 SQL 节点上未应用的行数。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
显示自上次启动此 mysqld 以来,由于使用
NDB$MAX_DELETE_WIN()
的 NDB Cluster 复制冲突解决,在当前 SQL 节点上被拒绝的行数。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_fn_max_del_win_ins
显示自上次启动此 mysqld 以来,由于使用
NDB$MAX_DEL_WIN_INS()
的 NDB Cluster 复制冲突解决,在当前 SQL 节点上被拒绝插入的行数。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
此变量用于 NDB Cluster 复制冲突解决,显示自上次启动此 mysqld 以来,由于“最大时间戳获胜”冲突解决,在当前 SQL 节点上未插入的行数。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
此变量用于 NDB Cluster 复制冲突解决,显示自上次重启以来,在给定的 mysqld 上,由于“相同时间戳获胜”冲突解决,导致未应用的行数。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_last_conflict_epoch
此副本检测到冲突的最新纪元。您可以将此值与
Ndb_replica_max_replicated_epoch
进行比较;如果Ndb_replica_max_replicated_epoch
大于Ndb_conflict_last_conflict_epoch
,则尚未检测到任何冲突。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_reflected_op_discard_count
使用 NDB Cluster 复制冲突解决时,这是由于在执行期间遇到错误,未在辅助服务器上应用的反射操作数。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_reflected_op_prepare_count
使用 NDB Cluster 复制的冲突解决时,此状态变量包含已定义(即,已准备好执行到辅助服务器)的反射操作数。
使用 NDB Cluster 复制的冲突解决时,这表示已准备好执行到辅助服务器的刷新操作数。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_last_stable_epoch
由事务性冲突函数找到的冲突行数
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_row_conflict_count
此状态变量用于 NDB Cluster 复制冲突解决,显示自上次重启以来,在给定的 mysqld 上,由事务性冲突函数直接找到的冲突行数。
目前,NDB Cluster 支持的唯一事务性冲突检测函数是 NDB$EPOCH_TRANS(),因此,此状态变量实际上与
Ndb_conflict_fn_epoch_trans
相同。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_row_reject_count
该状态变量用于 NDB Cluster 复制冲突解决,显示由于事务冲突检测函数判定为冲突而重新对齐的行总数。 这不仅包括
Ndb_conflict_trans_row_conflict_count
,还包括与冲突事务相关联的所有行或依赖于冲突事务的所有行。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_reject_count
该状态变量用于 NDB Cluster 复制冲突解决,显示事务冲突检测函数发现的冲突事务数量。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_detect_iter_count
该状态变量用于 NDB Cluster 复制冲突解决,显示提交纪元事务所需的内部迭代次数。 应该(略)大于或等于
Ndb_conflict_trans_conflict_commit_count
。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_conflict_commit_count
该状态变量用于 NDB Cluster 复制冲突解决,显示在需要事务冲突处理后提交的纪元事务数量。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
使用删除-删除冲突检测时,这是检测到的删除-删除冲突数量,其中应用了删除操作,但指示的行不存在。
提供操作对
NDB
内核进行的往返次数。NDB
最近提交的纪元。此
NDB
客户端最近提交的纪元。自服务器上次启动以来,NDB 元数据变更检测线程发现与 MySQL 数据字典相关的变更次数。
自上次重启以来,NDB binlog 线程无法在此 SQL 节点上同步的元数据对象数量。
如果对象被排除,则不会再次考虑自动同步,直到用户手动更正不匹配。 这可以通过尝试使用表来完成,例如
SHOW CREATE TABLE
、table
SELECT * FROM
或任何其他将触发表发现的语句。table
自上次重启以来,在此 SQL 节点上同步的 NDB 元数据对象数量。
如果服务器是 NDB Cluster 的一部分,则此变量的值是集群中的数据节点数量。
如果服务器不是 NDB Cluster 的一部分,则此变量的值为 0。
推送到 NDB 内核以在数据节点上进行分布式处理的连接总数。
注意使用
EXPLAIN
测试的可以推送到 NDB 内核的连接将计入此数字。推送到 NDB 内核但无法在 NDB 内核中处理的连接数量。
成功推送到
NDB
并执行的连接数量。由推送到 NDB 内核的连接从 NDB 内核返回到 mysqld 的行数。
该变量保存自上次启动 NDB Cluster 以来由
NDBCLUSTER
执行的扫描数量,其中NDBCLUSTER
能够使用分区修剪。将此变量与
Ndb_scan_count
结合使用,可以帮助在架构设计中最大限度地提高服务器对扫描进行修剪到单个表分区的效率,从而只涉及单个数据节点的副本。Ndb_replica_max_replicated_epoch
此副本上最近提交的纪元。 您可以将此值与
Ndb_conflict_last_conflict_epoch
进行比较; 如果Ndb_replica_max_replicated_epoch
是两个值中较大的一个,则尚未检测到任何冲突。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
该变量保存自上次启动 NDB Cluster 以来由
NDBCLUSTER
执行的扫描总数。Ndb_slave_max_replicated_epoch
Ndb_replica_max_replicated_epoch
的弃用同义词。如果此 MySQL 服务器连接到 NDB 集群,则此只读变量将显示集群系统名称。 否则,该值为一个空字符串。
当前会话中启动的使用提示的事务数量。 与
Ndb_api_trans_start_count_session
进行比较,以获取能够使用提示的所有 NDB 事务的比例。