本节提供有关特定于 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
忽略跳过的时期事务。单独使用时无效。-
命令行格式 --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 连接的最大数量。假设你有 2 台集群主机,每台都运行一个 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
将原始服务器 ID 和纪元记录到
ndb_binlog_index
表中。注意这使得给定的纪元可以在
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,或者文件中必须存在一个 “open”[mysqld]
或[api]
部分(也就是说,没有指定NodeId
或Id
参数的部分)。这在将节点 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
,它就会打开。 --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 服务器在接受 MySQL 客户端连接之前等待与 NDB Cluster 管理节点和数据节点建立连接的时间段。该时间以秒为单位。默认值为
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)在循环(“活动-活动”)复制设置中的作用。
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
表是否完全复制。此设置可以使用COMMENT="NDB_TABLE=FULLY_REPLICATED=..."
在CREATE TABLE
或ALTER TABLE
语句中为单个表覆盖。有关语法和其他信息,请参见 第 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 MB 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 Replication 基于读取冲突进行冲突检测和解决。要启用这些锁,请将
ndb_log_exclusive_reads
的值设置为 1。0(禁用此类锁定)是默认值。有关更多信息,请参见 读取冲突检测和解决。
-
命令行格式 --ndb-log-orig[={OFF|ON}]
系统变量 ndb_log_orig
范围 全局 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
显示源服务器 ID 和纪元是否记录在
ndb_binlog_index
表中。使用--ndb-log-orig
服务器选项进行设置。 -
系统变量 ndb_log_transaction_id
范围 全局 动态 否 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
此只读布尔系统变量显示副本 mysqld 是否在二进制日志中写入 NDB 事务 ID(需要使用 “主动-主动” NDB Cluster Replication 和
NDB$EPOCH_TRANS()
冲突检测)。要更改设置,请使用--ndb-log-transaction-id
选项。ndb_log_transaction_id
在主线 MySQL Server 8.4 中不受支持。有关更多信息,请参见 第 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 节点具有共享内存连接的节点被认为“最接近”SQL 节点;其次是(按邻近性递减顺序):TCP 连接到
localhost
,然后是从除localhost
之外的主机上的 TCP 连接。SQL 线程使用分布式感知来选择节点。也就是说,容纳给定事务第一个语句访问的集群分区的节点用作整个事务的事务协调器。(这仅在事务的第一个语句访问不超过一个集群分区时有效。)
此选项取其中一个整数:
0
、1
、2
或3
。3
是默认值。这些值会影响节点选择,如下所示0
:节点选择未优化。在 SQL 线程继续到下一个节点之前,每个节点都作为事务协调器使用 8 次。1
:使用与 SQL 节点的邻近性来确定事务协调器。2
:使用分布式感知来选择事务协调器。但是,如果事务的第一个语句访问了多个集群分区,则 SQL 节点会恢复到在将此选项设置为0
时看到的循环行为。3
:如果可以采用分布式感知来确定事务协调器,则使用它;否则使用邻近性来选择事务协调器。(这是默认行为。)
邻近性确定如下
从
Group
参数(默认值为 55)设置的值开始。对于与其他 API 节点共享相同主机的 API 节点,将值减 1。假设
Group
的默认值,与 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 节点和节点使用相同的主机名或 IP 地址,则会自动检测到这一事实,因此优先选择将读取发送到同一主机。如果这些节点位于同一主机上但使用不同的 IP 地址,则可以通过将 SQL 节点上的
ndb_data_node_neighbour
的值设置为节点的节点 ID 来告诉 SQL 节点使用正确的节点。要启用或禁用对单个表的任何片段副本的读取,您可以在
CREATE TABLE
或ALTER TABLE
语句中相应地设置表的NDB_TABLE
选项READ_BACKUP
;有关更多信息,请参见第 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
提示适用否 类型 位图 默认值 [空]
用于将接收线程锁定到特定 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 API 的Ndb::setEventBufferQueueEmptyEpoch()
方法启用此功能时,才会包含在计算中。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
时升级架构分布表。当值为 true(默认值)时,此更改将推迟到所有 SQL 节点都升级到相同版本的 NDB 集群软件后才会执行。注意在执行升级之前,架构分布的性能可能会略有下降。
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
表不会写入磁盘:这意味着不会创建任何表架构文件,并且表不会被记录。注意设置此变量目前没有效果。这是一个已知问题;请参阅 Bug #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 集群副本上启用批量更新。
允许在副本上进行批量更新可以大大提高性能,尤其是在复制
TEXT
、BLOB
和JSON
列时。因此,replica_allow_batching
默认情况下处于启用状态。设置此变量仅在使用带有
NDB
存储引擎的复制时才有效;在 MySQL 服务器 8.4 中,它存在但不执行任何操作。有关更多信息,请参阅 第 25.7.6 节,“启动 NDB 集群复制(单个复制通道)”。 -
命令行格式 --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 集群使用AnyValue
来存储服务器 ID)。从
server_id
中提取有效服务器 ID 以用于检测复制循环等目的时,服务器会忽略剩余位。在 I/O 和 SQL 线程中决定是否应根据服务器 ID 忽略事件时,server_id_bits
变量用于屏蔽server_id
中的任何无关位。此数据可以通过 mysqlbinlog 从二进制日志中读取,前提是它以其自己的
server_id_bits
变量设置为 32(默认值)运行。如果
server_id
的值大于或等于 2 的server_id_bits
次幂;否则,mysqld 拒绝启动。此系统变量仅受 NDB 集群支持。它不受标准 MySQL 8.4 服务器支持。
-
命令行格式 --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
不会有任何效果。在仅执行写入操作的事务中使用此变量是安全的,因为启用它会导致从“之前”映像中读取数据。在发出
SELECT
之前,您应该确保已提交任何挂起的事务(如果需要,使用显式COMMIT
)。重要transaction_allow_batching
不应在给定语句的效果可能取决于同一个事务中先前语句的结果的情况下使用。此变量目前仅支持 NDB 集群。
以下列表中的系统变量都与 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 Cluster 和 NDB
存储引擎相关的 MySQL 服务器状态变量的详细信息。对于不特定于 NDB Cluster 的状态变量,以及有关使用状态变量的一般信息,请参见 第 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
Ndb_api_bytes_received_count_replica
的已弃用同义词。此 MySQL 服务器(SQL 节点)从数据节点接收的数据量(以字节为单位)。
虽然可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取此变量,但它在作用域上实际上是全局的。有关更多信息,请参见 第 25.6.16 节,“NDB API 统计计数器和变量”.
Ndb_api_event_data_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_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 二进制日志注入器线程接收的事件的字节数。
虽然可以使用
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
Ndb_api_pruned_scan_count_replica
的已弃用同义词。此 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 服务器实际上读取伪行,形式为[
,并对表中所有片段的每片段行求和,以推导出所有行的估计计数。table fragment ID
]:[number of rows in fragment
]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 集群节点,则此变量的值是其在集群中的节点 ID。
如果服务器不是 NDB 集群的一部分,则此变量的值为 0。
如果服务器是 NDB 集群的一部分,则此变量的值是获取其配置数据的集群管理服务器的主机名或 IP 地址。
如果服务器不是 NDB 集群的一部分,则此变量的值为空字符串。
如果服务器是 NDB 集群的一部分,则此变量的值是连接到集群管理服务器的端口号,它通过该端口号获取其配置数据。
如果服务器不是 NDB 集群的一部分,则此变量的值为 0。
显示集群当前配置的生成号。 这可以用作指标来确定自此 SQL 节点上次连接到集群以来,集群的配置是否已更改。
在 NDB 集群复制冲突解决中使用,此变量显示在给定的 mysqld 上使用
NDB$EPOCH()
冲突解决找到的冲突行数,自上次重启以来。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
在 NDB 集群复制冲突解决中使用,此变量显示在给定的 mysqld 上使用
NDB$EPOCH_TRANS()
冲突解决找到的冲突行数,自上次重启以来。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
显示在 NDB 集群复制冲突解决中找到的冲突行数,使用
NDB$EPOCH2()
,在指定为主服务器的源服务器上,自上次重启以来。有关更多信息,请参见 NDB$EPOCH2()。
在 NDB 集群复制冲突解决中使用,此变量显示在给定的 mysqld 上使用
NDB$EPOCH_TRANS2()
冲突解决找到的冲突行数,自上次重启以来。有关更多信息,请参见 NDB$EPOCH2_TRANS()。
在 NDB 集群复制冲突解决中使用,此变量显示由于“最大时间戳获胜”冲突解决导致行未在当前 SQL 节点上应用的次数,自上次启动此 mysqld 以来。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
显示由于使用
NDB$MAX_DELETE_WIN()
的 NDB 集群复制冲突解决导致行在当前 SQL 节点上被拒绝的次数,自上次启动此 mysqld 以来。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_fn_max_del_win_ins
显示由于使用
NDB$MAX_DEL_WIN_INS()
的 NDB 集群复制冲突解决导致行插入在当前 SQL 节点上被拒绝的次数,自上次启动此 mysqld 以来。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
在 NDB 集群复制冲突解决中使用,此变量显示由于“最大时间戳获胜”冲突解决导致行未在当前 SQL 节点上插入的次数,自上次启动此 mysqld 以来。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
在 NDB 集群复制冲突解决中使用,此变量显示由于“相同时间戳获胜”冲突解决导致行未在给定的 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 集群复制冲突解决”。
Ndb_conflict_reflected_op_discard_count
使用 NDB 集群复制冲突解决时,这是由于在执行期间遇到错误而未在辅助服务器上应用的反射操作的数量。
有关更多信息,请参见 第 25.7.12 节,“NDB 集群复制冲突解决”。
Ndb_conflict_reflected_op_prepare_count
使用 NDB 集群复制的冲突解决时,此状态变量包含已定义的反射操作的数量(即,已准备在辅助服务器上执行)。
使用 NDB 集群复制的冲突解决时,这将给出已准备在辅助服务器上执行的刷新操作的数量。
有关更多信息,请参见 第 25.7.12 节,“NDB 集群复制冲突解决”。
Ndb_conflict_last_stable_epoch
通过事务性冲突函数找到的冲突行数
有关更多信息,请参见 第 25.7.12 节,“NDB 集群复制冲突解决”。
Ndb_conflict_trans_row_conflict_count
在 NDB 集群复制冲突解决中使用,此状态变量显示在给定的 mysqld 上通过事务性冲突函数直接找到的冲突行数,自上次重启以来。
目前,NDB 集群支持的唯一事务性冲突检测函数是 NDB$EPOCH_TRANS(),因此此状态变量实际上与
Ndb_conflict_fn_epoch_trans
相同。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_row_reject_count
在 NDB 集群复制冲突解决中,此状态变量显示由于事务冲突检测函数判定为冲突而重新对齐的行总数。这不仅包括
Ndb_conflict_trans_row_conflict_count
,还包括冲突事务中或依赖于冲突事务的任何行。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_reject_count
在 NDB 集群复制冲突解决中,此状态变量显示事务冲突检测函数发现的冲突事务数量。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_detect_iter_count
在 NDB 集群复制冲突解决中,这显示了提交一个时代事务所需的内部迭代次数。应该(稍微)大于或等于
Ndb_conflict_trans_conflict_commit_count
。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_conflict_commit_count
在 NDB 集群复制冲突解决中,这显示了在需要事务冲突处理后提交的时代事务数量。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
使用删除-删除冲突检测时,这是检测到的删除-删除冲突的数量,其中应用了删除操作,但指示的行不存在。
提供操作对
NDB
内核的往返次数。最近由
NDB
提交的时代。最近由此
NDB
客户端提交的时代。自此服务器上次启动以来,NDB 元数据更改检测线程发现相对于 MySQL 数据字典的更改次数。
自上次重新启动以来,NDB binlog 线程无法在此 SQL 节点上同步的元数据对象数量。
如果某个对象被排除,则在用户手动纠正不匹配之前不会再次考虑自动同步。可以通过尝试使用该表来完成此操作,例如使用以下语句:
SHOW CREATE TABLE
,table
SELECT * FROM
,或任何其他会触发表发现的语句。table
自上次重新启动以来,在此 SQL 节点上同步的 NDB 元数据对象数量。
如果服务器是 NDB 集群的一部分,则此变量的值是集群中的数据节点数量。
如果服务器不是 NDB 集群的一部分,则此变量的值为 0。
推送到 NDB 内核以在数据节点上进行分布式处理的连接总数。
注意使用
EXPLAIN
测试可以推送到 NDB 内核的连接将计入此数字。推送到 NDB 内核但无法在那里处理的连接数量。
成功推送到
NDB
并在那里执行的连接数量。由推送到 NDB 内核的连接返回到 mysqld 的行数。
此变量保存自上次启动 NDB 集群以来
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 集群以来
NDBCLUSTER
执行的扫描总数。Ndb_slave_max_replicated_epoch
Ndb_replica_max_replicated_epoch
的过时同义词。如果此 MySQL 服务器连接到 NDB 集群,则此只读变量显示集群系统名称。否则,值为一个空字符串。
当前会话中启动的使用提示的事务数量。与
Ndb_api_trans_start_count_session
进行比较,以获得能够使用提示的所有 NDB 事务的比例。