本节提供了关于 MySQL 服务器选项、服务器和状态变量的信息,这些变量特定于 NDB 集群。有关使用这些选项和变量的常规信息,以及不特定于 NDB 集群的其他选项和变量,请参阅 第 7.1 节,“MySQL 服务器”。
对于 NDB 集群配置文件(通常命名为 config.ini
)中的配置参数,请参阅 第 25.4 节,“NDB 集群配置”。
本节提供了 mysqld 服务器选项的描述,这些选项与 NDB 集群相关。有关 mysqld 选项的常规信息,以及使用 mysqld 选项的信息,请参阅 第 7.1.7 节,“服务器命令选项”。
有关使用其他 NDB 集群进程的命令行选项的信息,请参阅 第 25.5 节,“NDB 集群程序”。
-
Command-Line Format --ndbcluster[=value]
Disabled by skip-ndbcluster
Type 枚举 Default Value ON
Valid Values OFF
FORCE
如果 mysqld 二进制文件包括对
NDBCLUSTER
存储引擎的支持,则该引擎默认情况下是禁用的。使用--ndbcluster
选项来启用它。使用--skip-ndbcluster
明确禁用引擎。如果使用
--initialize
,则--ndbcluster
选项将被忽略(NDB
存储引擎将 不 启用)。(不需要也不应该使用这两个选项一起。) -
--ndb-allow-copying-alter-table=[ON|OFF]
Command-Line Format --ndb-allow-copying-alter-table[={OFF|ON}]
System Variable ndb_allow_copying_alter_table
Scope Global, Session Dynamic Yes SET_VAR
Hint AppliesNo Type 布尔值 Default Value ON
允许
ALTER TABLE
和其他 DDL 语句在NDB
表上使用复制操作。将其设置为OFF
可以防止这种情况发生,从而可能提高关键应用程序的性能。 -
--ndb-applier-allow-skip-epoch
Command-Line Format --ndb-applier-allow-skip-epoch
System Variable ndb_applier_allow_skip_epoch
Scope Global Dynamic No SET_VAR
Hint AppliesNo 与
--replica-skip-errors
一起使用,以使NDB
忽略跳过的 epoch 事务。当单独使用时无效。 -
Command-Line Format --ndb-batch-size
System Variable ndb_batch_size
Scope Global, Session Dynamic Yes SET_VAR
Hint Applies否 Type 整数 Default Value 32768
Minimum Value 0
Maximum Value 2147483648
Unit 字节 这将设置 NDB 事务批处理的大小(以字节为单位)。
-
--ndb-cluster-connection-pool=
#
Command-Line Format --ndb-cluster-connection-pool
System Variable ndb_cluster_connection_pool
System Variable ndb_cluster_connection_pool
Scope 全局 Scope 全局 Dynamic 否 Dynamic 否 SET_VAR
Hint Applies否 SET_VAR
Hint Applies否 Type 整数 Default Value 1
Minimum Value 1
Maximum Value 63
通过将此选项设置为大于 1(默认值)的值,一个 mysqld 进程可以使用多个连接到集群,有效地模拟多个 SQL 节点。每个连接都需要在集群配置文件(
config.ini
)中拥有自己的[api]
或[mysqld]
部分,并且计入集群支持的最大 API 连接数。假设您有 2 个集群主机计算机,每个运行一个 SQL 节点,其 mysqld 进程以
--ndb-cluster-connection-pool=4
启动;这意味着集群必须有 8 个 API 插槽可用于这些连接(而不是 2)。所有这些连接都是在 SQL 节点连接到集群时设置的,并以循环方式分配给线程。只有在运行 mysqld 的主机机器具有多个 CPU、多个核心或两者时,这个选项才有用。为了获得最佳结果,值应该小于主机机器上的总核心数。将其设置为大于这个值将严重降低性能。
Important因为每个使用连接池的 SQL 节点占用多个 API 节点插槽——每个插槽在集群中都有其自己的节点 ID——因此,您 不能 在使用连接池时在集群连接字符串中使用节点 ID。
在使用
--ndb-cluster-connection-pool
选项时,在连接字符串中设置节点 ID 将导致节点 ID 分配错误,当 SQL 节点尝试连接到集群时。 -
--ndb-cluster-connection-pool-nodeids=
list
Command-Line Format --ndb-cluster-connection-pool-nodeids
System Variable ndb_cluster_connection_pool_nodeids
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 设置 Default Value 指定一个以逗号分隔的节点 ID 列表,用于连接到集群的 SQL 节点。该列表中的节点数必须与
--ndb-cluster-connection-pool
选项的值相同。 -
--ndb-blob-read-batch-bytes=
bytes
Command-Line Format --ndb-blob-read-batch-bytes
System Variable ndb_blob_read_batch_bytes
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 65536
Minimum Value 0
Maximum Value 4294967295
该选项可用于设置 NDB 集群应用程序中的
BLOB
数据读取批处理的大小(以字节为单位)。当当前事务中的BLOB
数据读取量超过该批处理大小时,任何挂起的BLOB
读取操作将立即执行。该选项的最大值为 4294967295;默认值为 65536。将其设置为 0 将禁用
BLOB
读取批处理。Note在 NDB API 应用程序中,您可以使用
BLOB
写批处理控制方法setMaxPendingBlobReadBytes()
和getMaxPendingBlobReadBytes()
。 -
--ndb-blob-write-batch-bytes=
bytes
Command-Line Format --ndb-blob-write-batch-bytes
System Variable ndb_blob_write_batch_bytes
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 65536
Minimum Value 0
Maximum Value 4294967295
Unit 字节 该选项用于设置 NDB 集群应用程序中的
BLOB
数据写批处理的大小(以字节为单位)。当当前事务中的BLOB
数据写操作的数量超过该批处理大小时,将立即执行任何挂起的BLOB
写操作。该选项的最大值为 4294967295;默认值为 65536。将其设置为 0 将禁用
BLOB
写批处理。Note在 NDB API 应用程序中,您可以使用
BLOB
写批处理控制方法setMaxPendingBlobWriteBytes()
和getMaxPendingBlobWriteBytes()
。 -
--ndb-connectstring=
connection_string
Command-Line Format --ndb-connectstring
Type 字符串 使用
NDBCLUSTER
存储引擎时,该选项指定管理服务器,该服务器分发集群配置数据。请参阅 第 25.4.3.3 节,“NDB Cluster 连接字符串”,了解语法。 -
--ndb-default-column-format=[FIXED|DYNAMIC]
Command-Line Format --ndb-default-column-format={FIXED|DYNAMIC}
System Variable ndb_default_column_format
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 枚举 Default Value FIXED
Valid Values FIXED
DYNAMIC
设置新表的默认
COLUMN_FORMAT
和ROW_FORMAT
(请参阅 第 15.1.20 节,“CREATE TABLE 语句”)。默认值为FIXED
。 -
--ndb-deferred-constraints=[0|1]
Command-Line Format --ndb-deferred-constraints
System Variable ndb_deferred_constraints
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 0
Minimum Value 0
Maximum Value 1
控制是否在提交时检查唯一索引的约束检查,仅在支持时检查。
0
是默认值。该选项主要用于测试,不是 NDB 集群或 NDB 集群复制的正常操作所需。
-
Command-Line Format --ndb-schema-dist-timeout=#
System Variable ndb_schema_dist_timeout
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 整数 Default Value 120
Minimum Value 5
Maximum Value 1200
Unit 秒 指定了这个 mysqld 等待模式操作完成之前的最大时间(以秒为单位),否则将其标记为超时。
-
--ndb-distribution=[KEYHASH|LINHASH]
Command-Line Format --ndb-distribution={KEYHASH|LINHASH}
System Variable ndb_distribution
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 枚举 Default Value KEYHASH
Valid Values LINHASH
KEYHASH
控制
NDB
表的默认分布方法。可以设置为KEYHASH
(键哈希)或LINHASH
(线性哈希)。KEYHASH
是默认值。 -
Command-Line Format --ndb-log-apply-status[={OFF|ON}]
System Variable ndb_log_apply_status
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
使副本 mysqld 将从其直接来源接收的更新记录到其自己的二进制日志中,使用自己的服务器 ID,而不是来源的服务器 ID。在环形或链式复制设置中,这允许这些更新传播到
mysql.ndb_apply_status
表中的任何 MySQL 服务器配置为副本的当前 mysqld。在链式复制设置中,使用这个选项允许下游(副本)集群了解它们相对于所有上游贡献者的位置。
在环形复制设置中,这个选项使
ndb_apply_status
表的更改完成整个回路,最后传播回原始 NDB 集群。这也允许作为复制来源的集群看到其更改(epochs)何时应用于其他集群中的环。这个选项只有在 MySQL 服务器以
--ndbcluster
选项启动时才生效。 -
--ndb-log-empty-epochs=[ON|OFF]
Command-Line Format --ndb-log-empty-epochs[={OFF|ON}]
System Variable ndb_log_empty_epochs
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
使得没有更改的epochs被写入
ndb_apply_status
和ndb_binlog_index
表,即使log_replica_updates
启用。默认情况下,该选项被禁用。禁用
--ndb-log-empty-epochs
导致没有更改的epochs事务不被写入二进制日志,尽管ndb_binlog_index
表中仍然写入一行,即使是空epochs。因为
--ndb-log-empty-epochs=1
导致ndb_binlog_index
表的大小增长独立于二进制日志的大小,因此用户应该准备管理该表的增长,即使他们期望集群大部分时间处于空闲状态。 -
--ndb-log-empty-update=[ON|OFF]
Command-Line Format --ndb-log-empty-update[={OFF|ON}]
System Variable ndb_log_empty_update
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
使得没有更改的更新被写入
ndb_apply_status
和ndb_binlog_index
表,即使log_replica_updates
启用。默认情况下,该选项被禁用 (
OFF
)。禁用--ndb-log-empty-update
导致更新无变化不被写入二进制日志。 -
--ndb-log-exclusive-reads=[0|1]
Command-Line Format --ndb-log-exclusive-reads[={OFF|ON}]
System Variable ndb_log_exclusive_reads
Scope Global, Session Dynamic Yes SET_VAR
Hint AppliesNo Type Boolean Default Value 0
使用该选项启动服务器将主键读取记录为独占锁,以便于 NDB 集群复制冲突检测和解决基于读取冲突。你也可以在运行时通过设置
ndb_log_exclusive_reads
系统变量的值为 1 或 0 来启用和禁用这些锁。默认值为 0(禁用锁定)。有关更多信息,请参阅 读取冲突检测和解决。
-
Command-Line Format --ndb-log-fail-terminate
System Variable ndb_log_fail_terminate
Scope Global Dynamic No SET_VAR
Hint AppliesNo Type Boolean Default Value FALSE
当该选项被指定,并且无法完全记录所有找到的行事件时,mysqld 进程将被终止。
-
Command-Line Format --ndb-log-orig[={OFF|ON}]
System Variable ndb_log_orig
Scope Global Dynamic No SET_VAR
Hint AppliesNo Type Boolean Default Value OFF
在
ndb_binlog_index
表中记录原始服务器 ID 和 epoch。Note这使得每个 epoch 在
ndb_binlog_index
中可以有多行,一行对应每个原始 epoch。有关更多信息,请参阅 第 25.7.4 节,“NDB Cluster Replication Schema and Tables”。
-
--ndb-log-transaction-dependency
Command-Line Format --ndb-log-transaction-dependency={true|false}
System Variable ndb_log_transaction_dependency
Scope Global Dynamic No SET_VAR
Hint AppliesNo Type Boolean Default Value false
使
NDB
二进制日志记录线程为每个事务计算事务依赖关系。默认值为FALSE
。该选项不能在运行时设置;相应的
ndb_log_transaction_dependency
系统变量是只读的。 -
Command-Line Format --ndb-log-transaction-id[={OFF|ON}]
System Variable ndb_log_transaction_id
Scope Global Dynamic No SET_VAR
Hint AppliesNo Type Boolean Default Value OFF
使副本 mysqld 在二进制日志中写入 NDB 事务 ID。默认值为
FALSE
。--ndb-log-transaction-id
需要启用 NDB 集群复制冲突检测和解决使用NDB$EPOCH_TRANS()
函数(参阅 NDB$EPOCH_TRANS())。有关更多信息,请参阅 第 25.7.12 节,“NDB Cluster Replication Conflict Resolution”。 -
Command-Line Format --ndb-log-update-as-write[={OFF|ON}]
System Variable ndb_log_update_as_write
Scope Global Dynamic Yes SET_VAR
Hint AppliesNo Type Boolean Default Value ON
是否将源更新写入二进制日志作为更新(
OFF
)或写入(ON
)。当启用此选项时,如果同时禁用--ndb-log-updated-only
和--ndb-log-update-minimal
,则不同类型的操作将被记录如下所示:-
INSERT
:记录为WRITE_ROW
事件,without before image; after image记录所有列。UPDATE
:记录为WRITE_ROW
事件,without before image; after image记录所有列。DELETE
:记录为DELETE_ROW
事件,before image记录所有列;after image不记录。
此选项可用于NDB复制冲突解决方案,结合其他两个NDB日志选项;见ndb_replication Table,获取更多信息。
-
-
Command-Line Format --ndb-log-updated-only[={OFF|ON}]
System Variable ndb_log_updated_only
Scope Global Dynamic Yes SET_VAR
Hint AppliesNo Type Boolean Default Value ON
是否将
mysqld
写入更新(ON
)或完整行(OFF
)到二进制日志中。当此选项启用时,如果同时禁用--ndb-log-update-as-write
和--ndb-log-update-minimal
,则不同类型的操作将被记录如下所示:-
INSERT
:记录为WRITE_ROW
事件,without before image; after image记录所有列。 -
UPDATE
:记录为UPDATE_ROW
事件,primary key列和更新列同时出现在before和after images中。 -
DELETE
:记录为DELETE_ROW
事件,primary key列包含在before image中;after image不记录。
此选项可用于NDB复制冲突解决方案,结合其他两个NDB日志选项;见ndb_replication Table,获取更多信息。
-
-
Command-Line Format --ndb-log-update-minimal[={OFF|ON}]
System Variable ndb_log_update_minimal
Scope Global Dynamic Yes SET_VAR
Hint AppliesNo Type Boolean Default Value OFF
以最小化方式记录更新,仅在before image中写入primary key值,在after image中仅写入更改的列。这可能会导致与其他存储引擎(除
NDB
外)复制时出现兼容性问题。当此选项启用时,如果同时禁用--ndb-log-updated-only
和--ndb-log-update-as-write
,则不同类型的操作将被记录如下所示:-
INSERT
:记录为WRITE_ROW
事件,without before image; after image记录所有列。 -
UPDATE
:记录为UPDATE_ROW
事件,primary key列在before image中;所有列(except primary key列)在after image中记录。 -
DELETE
:记录为DELETE_ROW
事件,所有列在before image中记录;after image不记录。
此选项可用于NDB复制冲突解决方案,结合其他两个NDB日志选项;见ndb_replication Table,获取更多信息。
-
-
--ndb-mgm-tls=[relaxed|strict]
Command-Line Format --ndb-mgm-tls=[strict|relaxed]
System Variable ndb_mgm_tls
Scope Global Dynamic 否 SET_VAR
Hint Applies否 Type 枚举 Default Value relaxed
Valid Values relaxed
strict
设置 NDB 集群的 TLS 连接要求级别;值为
relaxed
或strict
。relaxed
表示尝试 TLS 连接,但不要求成功:strict
表示 TLS 连接是必需的。默认为relaxed
。 -
Command-Line Format --ndb-mgmd-host=主机名[:端口号]
Type 字符串 Default Value localhost:1186
用于设置管理服务器的主机和端口号,以便程序连接。如果程序需要节点 ID 或多个管理服务器的引用(或两者)在连接信息中,请使用
--ndb-connectstring
选项。 -
Command-Line Format --ndb-nodeid=#
Status Variable Ndb_cluster_node_id
Scope 全局 Dynamic 否 Type 整数 Default Value N/A
Minimum Value 1
Maximum Value 255
Maximum Value 63
设置 NDB 集群中的 MySQL 服务器节点 ID。
选项
--ndb-nodeid
将覆盖使用--ndb-connectstring
设置的节点 ID,无论这两个选项的使用顺序如何。此外,如果使用
--ndb-nodeid
,则必须在config.ini
文件的[mysqld]
或[api]
部分中找到匹配的节点 ID,或者必须在文件中存在一个开放的[mysqld]
或[api]
部分(即没有NodeId
或Id
参数指定的部分)。这也适用于节点 ID 作为连接字符串的一部分指定的情况。无论节点 ID 是如何确定的,它都将显示在
SHOW STATUS
语句的输出中的Ndb_cluster_node_id
全局状态变量中,以及在SHOW ENGINE NDBCLUSTER STATUS
语句的输出中的cluster_node_id
行中。有关 NDB 集群 SQL 节点的节点 ID 的更多信息,请参阅 第 25.4.3.7 节,“Defining SQL and Other API Nodes in an NDB Cluster”。
-
Command-Line Format --ndbinfo[=值]
Type 枚举 Default Value ON
Valid Values ON
OFF
FORCE
启用
ndbinfo
信息数据库插件。默认情况下,当NDBCLUSTER
启用时,这将启用。 -
Command-Line Format --ndb-optimization-delay=#
System Variable ndb_optimization_delay
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 10
Minimum Value 0
Maximum Value 100000
Unit 毫秒 设置
OPTIMIZE TABLE
语句在NDB
表上的行集之间等待的毫秒数。默认为 10。 -
--ndb-optimized-node-selection
Command-Line Format --ndb-optimized-node-selection
启用事务节点选择的优化。默认启用;使用
--skip-ndb-optimized-node-selection
禁用。 -
Command-Line Format --ndb-tls-search-path=路径
System Variable ndb_tls_search_path
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 路径名称 Default Value (Unix) $HOME/tls
Default Value (Windows) $HOMEDIR/tls
用于 NDB TLS 连接的 CA 和私钥的搜索目录列表。在 Unix 平台上以逗号分隔,在 Windows 平台上以分号分隔。
-
--ndb-transid-mysql-connection-map=
状态
Command-Line Format --ndb-transid-mysql-connection-map[=状态]
Type 枚举 Default Value ON
Valid Values 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
表插件是否正在运行。 -
Command-Line Format --ndb-wait-connected=#
System Variable ndb_wait_connected
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 整数 Default Value 120
Default Value 30
Minimum Value 0
Maximum Value 31536000
Unit 秒 该选项设置 MySQL 服务器等待 NDB 集群管理和数据节点连接建立的时间长度,以秒为单位。默认值为
30
。 -
Command-Line Format --ndb-wait-setup=#
System Variable ndb_wait_setup
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 整数 Default Value 120
Default Value 30
Default Value 15
Default Value 15
Minimum Value 0
Maximum Value 31536000
Unit 秒 该变量显示 MySQL 服务器等待
NDB
存储引擎完成设置的时间长度,以秒为单位。默认值为30
。 -
Command-Line Format --skip-ndbcluster
禁用
NDBCLUSTER
存储引擎。这是具有NDBCLUSTER
存储引擎支持的二进制文件的默认值;服务器仅在明确给出--ndbcluster
选项时才分配内存和其他资源用于该存储引擎。见 Section 25.4.1, “Quick Test Setup of NDB Cluster”,以获取示例。
本节提供了关于 MySQL 服务器系统变量的详细信息,这些变量特定于 NDB 集群和 NDB
存储引擎。对于不特定于 NDB 集群的系统变量,请参阅 第 7.1.8 节,“服务器系统变量”。关于使用系统变量的一般信息,请参阅 第 7.1.9 节,“使用系统变量”。
-
Command-Line Format --ndb-autoincrement-prefetch-sz=#
System Variable ndb_autoincrement_prefetch_sz
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 512
Minimum Value 1
Maximum Value 65536
确定自动递增列中的间隙概率。将其设置为
1
以最小化此问题。将其设置为高值以优化插入速度,但降低了批量插入中连续自动递增号码的可能性。该变量仅影响在语句之间获取的
AUTO_INCREMENT
ID 数量;在给定语句中,至少获取 32 个 ID。Important该变量不影响使用
INSERT ... SELECT
执行的插入。 -
Command-Line Format --ndb-clear-apply-status[={OFF|ON}]
System Variable ndb_clear_apply_status
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value ON
默认情况下,执行
RESET REPLICA
会导致 NDB 集群副本从其ndb_apply_status
表中清除所有行。您可以通过设置ndb_clear_apply_status=OFF
来禁用此行为。 -
Command-Line Format --ndb-conflict-role=value
System Variable ndb_conflict_role
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 枚举 Default Value NONE
Valid Values NONE
PRIMARY
SECONDARY
PASS
确定此 SQL 节点(和 NDB 集群)在环形(“活动-活动”)复制设置中的角色。
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 集群复制冲突解决”。
-
Command-Line Format --ndb-data-node-neighbour=#
System Variable ndb_data_node_neighbour
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 0
Minimum Value 0
Maximum Value 255
设置“最近”的数据节点的ID,即首选的非本地数据节点,以执行事务,而不是在同一主机上的SQL或API节点上运行。这用于确保在访问完全复制的表时,总是使用本地副本,以提高数据访问速度。
这可以在节点之间具有更高的网络吞吐量时提高数据访问速度。
请参阅第 15.1.20.12 节,“设置 NDB 注释选项”,以获取更多信息。
NoteNDB API 应用程序中提供了等效的方法
set_data_node_neighbour()
。 -
Command-Line Format --ndb-dbg-check-shares=#
System Variable ndb_dbg_check_shares
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 0
Minimum Value 0
Maximum Value 1
当设置为 1 时,检查是否有悬浮的共享。仅在调试版本中可用。
-
Command-Line Format --ndb-default-column-format={FIXED|DYNAMIC}
System Variable ndb_default_column_format
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 枚举 Default Value FIXED
Valid Values FIXED
DYNAMIC
设置新表的默认
COLUMN_FORMAT
和ROW_FORMAT
(见 第 15.1.20 节,“CREATE TABLE 语句”)。默认为FIXED
。 -
Command-Line Format --ndb-deferred-constraints=#
System Variable ndb_deferred_constraints
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 0
Minimum Value 0
Maximum Value 1
控制是否延迟约束检查,其中支持延迟约束检查。
0
是默认值。这个变量通常不需要在 NDB Cluster 或 NDB Cluster 复制操作中使用,主要用于测试。
-
Command-Line Format --ndb-distribution={KEYHASH|LINHASH}
System Variable ndb_distribution
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 枚举 Default Value KEYHASH
Valid Values LINHASH
KEYHASH
控制
NDB
表的默认分布方法。可以设置为KEYHASH
(键哈希)或LINHASH
(线性哈希)。默认为KEYHASH
。 -
Command-Line Format --ndb-eventbuffer-free-percent=#
System Variable ndb_eventbuffer_free_percent
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 20
Minimum Value 1
Maximum Value 99
设置事件缓冲区(ndb_eventbuffer_max_alloc)中可用的内存百分比,以便在达到最大值后重新开始缓冲。
-
Command-Line Format --ndb-eventbuffer-max-alloc=#
System Variable ndb_eventbuffer_max_alloc
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 0
Minimum Value 0
Maximum Value 9223372036854775807
设置 NDB API 缓冲事件的最大内存量(以字节为单位)。0 表示不施加限制,默认值。
-
Command-Line Format ndb_extra_logging=#
System Variable ndb_extra_logging
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 1
Minimum Value 0
Maximum Value 1
启用 MySQL 错误日志中特定于
NDB
存储引擎的记录。当该变量设置为 0 时,仅记录与事务处理相关的
NDB
信息。如果设置为大于 0 但小于 10,NDB
表模式和连接事件也将被记录,以及冲突解决是否启用和其他NDB
错误和信息。如果设置为 10 或更高,NDB
内部信息,如集群节点之间的数据分布进度,也将被记录到 MySQL 错误日志中。默认值为 1。 -
Command-Line Format --ndb-force-send[={OFF|ON}]
System Variable ndb_force_send
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value ON
强制将缓冲区发送到
NDB
,而不等待其他线程。默认值为ON
。 -
Command-Line Format --ndb-fully-replicated[={OFF|ON}]
System Variable ndb_fully_replicated
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
确定新建的
NDB
表是否完全复制。可以使用COMMENT="NDB_TABLE=FULLY_REPLICATED=..."
在CREATE TABLE
或ALTER TABLE
语句中覆盖该设置;见 第 15.1.20.12 节,“设置 NDB 注释选项”,了解语法和其他信息。 -
Command-Line Format --ndb-index-stat-enable[={OFF|ON}]
System Variable ndb_index_stat_enable
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value ON
使用
NDB
索引统计信息在查询优化中。默认是ON
。索引统计表总是在服务器启动时创建,不管这个选项的值是什么。
-
Command-Line Format --ndb-index-stat-option=value
System Variable ndb_index_stat_option
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value 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 = 'loop_idle=1000ms,cache_limit=32M'
。时间值可以选择性地以
h
(小时)、m
(分钟)或s
(秒)结尾。毫秒值可以选择性地使用ms
;毫秒值不能使用h
、m
或s
。整数值可以选择性地以K
、M
或G
结尾。可以使用这个变量设置的选项名称显示在下表中。该表还提供了选项的简要描述、默认值和(如果适用)最小和最大值。
表 25.19 ndb_index_stat_option 选项和值
Name Description Default/Units Minimum/Maximum loop_enable
1000 ms 0/4G loop_idle
空闲时睡眠时间 1000 ms 0/4G loop_busy
更多工作时睡眠时间 100 ms 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 m 1/4G delete_batch
8 0/4G clean_delay
1 m 0/4G error_batch
4 1/4G error_delay
1 m 1/4G evict_batch
8 1/4G evict_delay
从读取时间清除 LRU 缓存 1 m 0/4G cache_limit
使用的最大内存量(以字节为单位),用于缓存索引统计信息;当超过这个值时,清除缓存。 32 M 0/4G cache_lowpct
90 0/100 zero_total
将所有累积计数器重置为 0。 ndb_index_stat_status
中的这个选项值也将被重置为 0。0 0/1 -
System Variable ndb_join_pushdown
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value ON
这个变量控制是否将
NDB
表的连接推送到 NDB 内核(数据节点)。以前,连接是使用多个NDB
访问由 SQL 节点处理的;但是,当ndb_join_pushdown
启用时,一个可推送的连接将被发送到数据节点,其中可以分布在多个数据节点上并行执行,然后将单个合并结果返回到 mysqld。默认情况下,
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)
Note如果内连接的子表使用
ref
连接,并且 结果是按照排序索引排序或分组的,那么该索引不能提供排序的行,这将强制写入一个排序的临时文件。有两个额外的信息来源可以了解推送连接的性能:
-
状态变量
Ndb_pushed_queries_defined
、Ndb_pushed_queries_dropped
、Ndb_pushed_queries_executed
和Ndb_pushed_reads
。 -
在
ndbinfo.counters
表中的计数器属于DBSPJ
内核块。
-
-
Command-Line Format --ndb-log-apply-status[={OFF|ON}]
System Variable ndb_log_apply_status
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
一个只读变量,显示服务器是否使用
--ndb-log-apply-status
选项启动。 -
Command-Line Format --ndb-log-bin[={OFF|ON}]
System Variable ndb_log_bin
Scope 全局、会话 Dynamic 否 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
使NDB表的更新写入二进制日志。如果服务器未启用二进制日志记录,使用
log_bin
,则该变量的设置无效。ndb_log_bin
默认为0(FALSE)。 -
Command-Line Format --ndb-log-binlog-index[={OFF|ON}]
System Variable ndb_log_binlog_index
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value ON
将epochs到二进制日志中的位置映射插入到
ndb_binlog_index
表中。如果服务器未启用二进制日志记录,使用log_bin
,则该变量的设置无效。(此外,ndb_log_bin
不得禁用。)ndb_log_binlog_index
默认为1
(ON
); 在生产环境中通常不需要更改此值。 -
Command-Line Format --ndb-log-empty-epochs[={OFF|ON}]
System Variable ndb_log_empty_epochs
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
当该变量设置为0时,不写入二进制日志的空epochs事务,尽管仍然在
ndb_binlog_index
中写入一行,即使是空epochs。 -
Command-Line Format --ndb-log-empty-update[={OFF|ON}]
System Variable ndb_log_empty_update
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
当该变量设置为
ON
(1
)时,即使log_replica_updates
启用,也会将无更改的更新事务写入二进制日志。 -
Command-Line Format --ndb-log-exclusive-reads[={OFF|ON}]
System Variable ndb_log_exclusive_reads
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value 0
该变量确定是否使用排他锁记录主键读取,以便NDB Cluster复制冲突检测和解决基于读取冲突。要启用这些锁,请将
ndb_log_exclusive_reads
的值设置为1。默认值为0,禁用这些锁。有关更多信息,请参阅读取冲突检测和解决。
-
Command-Line Format --ndb-log-orig[={OFF|ON}]
System Variable ndb_log_orig
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 布尔 Default Value 关闭
显示原始服务器 ID 和 epoch 是否在
ndb_binlog_index
表中记录日志。使用--ndb-log-orig
服务器选项设置。 -
System Variable ndb_log_transaction_id
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 布尔 Default Value 关闭
该只读的布尔系统变量显示副本 mysqld 是否在二进制日志中写入 NDB 事务 ID(需要使用 “活动-活动” NDB 集群复制与
NDB$EPOCH_TRANS()
冲突检测)。要更改设置,请使用--ndb-log-transaction-id
选项。ndb_log_transaction_id
在主线 MySQL 服务器 8.3 中不受支持。有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
ndb_log_transaction_compression
Command-Line Format --ndb-log-transaction-compression
System Variable ndb_log_transaction_compression
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔 Default Value 关闭
副本 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 表的二进制日志事务压缩,请在 mysql 或其他客户端会话中将
ndb_log_transaction_compression
系统变量设置为OFF
。在启动后设置
binlog_transaction_compression
变量对ndb_log_transaction_compression
的值没有影响。有关二进制日志事务压缩的更多信息,请参阅 第 7.4.4.5 节,“二进制日志事务压缩”。
-
ndb_log_transaction_compression_level_zstd
Command-Line Format --ndb-log-transaction-compression-level-zstd=#
System Variable ndb_log_transaction_compression_level_zstd
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 3
Minimum Value 1
Maximum Value 22
使用的
ZSTD
压缩级别写入复制的二进制日志,如果启用了ndb_log_transaction_compression
。如果 mysqld 未编译支持NDB
存储引擎,不支持该功能。请参阅 第 7.4.4.5 节,“二进制日志事务压缩”,以获取更多信息。
-
Command-Line Format --ndb-metadata-check[={OFF|ON}]
System Variable ndb_metadata_check
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value ON
NDB
使用后台线程每ndb_metadata_check_interval
秒检查一次元数据更改,与 MySQL 数据字典相比。可以通过将ndb_metadata_check
设置为OFF
来禁用该线程。默认情况下,线程处于启用状态。 -
Command-Line Format --ndb-metadata-check-interval=#
System Variable ndb_metadata_check_interval
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 60
Minimum Value 0
Maximum Value 31536000
Unit 秒 NDB
在后台运行元数据更改检测线程,以确定 NDB 字典与 MySQL 数据字典之间的更改。默认情况下,检查间隔为 60 秒;可以通过设置ndb_metadata_check_interval
的值来调整该间隔。要启用或禁用该线程,请使用ndb_metadata_check
。 -
System Variable ndb_metadata_sync
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value false
设置该变量将导致更改监控线程覆盖
ndb_metadata_check
或ndb_metadata_check_interval
的设置,并进入连续更改检测期。当线程确定没有更多的更改需要检测时,它将等待二进制日志线程完成所有检测对象的同步。ndb_metadata_sync
然后将设置为false
,并且更改监控线程将恢复到由ndb_metadata_check
和ndb_metadata_check_interval
设置确定的行为。将该变量设置为
true
将清除排除对象的列表;将其设置为false
将清除要重试的对象列表。 -
Command-Line Format --ndb-optimized-node-selection=#
System Variable ndb_optimized_node_selection
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 整数 Default Value 3
Minimum Value 0
Maximum Value 3
有两种优化的节点选择形式,描述如下:
-
SQL 节点使用 近似度 来确定事务协调器;即,选择离 SQL 节点最近的数据节点作为事务协调器。为此目的,具有共享内存连接的数据节点被认为是 SQL 节点的 “最近” ;其次是 TCP 连接到
localhost
,然后是从其他主机的 TCP 连接。 -
SQL 线程使用 分布式感知 来选择数据节点。即,事务的第一个语句访问的集群分区所在的数据节点将被用作整个事务的事务协调器。(这仅在事务的第一个语句访问不超过一个集群分区时有效。)
该选项可以取整数值
0
、1
、2
或3
。3
是默认值。这些值影响节点选择,如下所示:-
0
:节点选择不优化。每个数据节点将被用作事务协调器 8 次,然后 SQL 线程将继续下一个数据节点。 -
1
:使用 SQL 节点的近似度来确定事务协调器。 -
2
:使用分布式感知来选择事务协调器。但是,如果事务的第一个语句访问多个集群分区,SQL 节点将回退到0
时的轮询行为。 -
3
:如果可以使用分布式感知来确定事务协调器,则使用;否则使用近似度来选择事务协调器。(这是默认行为。)
近似度是根据以下规则确定的:
-
从
Group
参数的值开始(默认为 55)。 -
对于与其他 API 节点共享同一主机的 API 节点,减少该值 1。假设
Group
的默认值,则同一主机上的数据节点的有效值为 54,对于远程数据节点为 55。 -
设置
ndb_data_node_neighbour
进一步减少了Group
的有效值,导致该节点被视为最近的节点。这仅在所有数据节点位于与 API 节点不同的主机上,并且需要将其中一个专门用于 API 节点时才需要。在正常情况下,之前描述的默认调整就足够了。
不建议频繁更改
ndb_data_node_neighbour
,因为这将更改集群连接的状态,从而可能会中断每个线程的新事务选择算法,直到它稳定下来。 -
-
Command-Line Format --ndb-read-backup[={OFF|ON}]
System Variable ndb_read_backup
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value 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
Command-Line Format --ndb-recv-thread-activation-threshold=#
System Variable 线程激活阈值
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 8
Minimum Value 0 (MIN_ACTIVATION_THRESHOLD)
Maximum Value 16 (MAX_ACTIVATION_THRESHOLD)
当达到这个数字的并发活动线程时,接收线程将接管集群连接的轮询。
这个变量是全局范围的。它也可以在启动时设置。
-
Command-Line Format --ndb-recv-thread-cpu-mask=mask
System Variable 接收线程 CPU 掩码
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 位图 Default Value [空]
用于锁定接收线程到特定 CPU 的 CPU 掩码。例如,
0x33
表示每个接收线程使用一个 CPU。空字符串是默认值;将ndb_recv_thread_cpu_mask
设置为空值将删除之前设置的任何接收线程锁。这个变量是全局范围的。它也可以在启动时设置。
-
Command-Line Format --ndb-report-thresh-binlog-epoch-slip=#
System Variable 二进制日志 epoch 滑动阈值
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 10
Minimum Value 0
Maximum Value 256
这表示事件缓冲区中完全缓冲但尚未被二进制日志 injector 线程消费的 epoch 数量阈值。当这个滑动程度(延迟)被超过时,将报告事件缓冲区状态信息, reason 为
BUFFERED_EPOCHS_OVER_THRESHOLD
(参见第 25.6.2.3 节,“事件缓冲区日志记录”)。滑动程度增加时,事件缓冲区中完全缓冲的 epoch 数量增加;滑动程度减少时,事件缓冲区中完全缓冲的 epoch 数量减少。空的 epoch 也被缓冲和排队,因此在这个计算中包括,只有在使用 NDB API 的Ndb::setEventBufferQueueEmptyEpoch()
方法时启用。 -
Command-Line Format --ndb-report-thresh-binlog-mem-usage=#
System Variable 二进制日志内存使用率阈值
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 10
Minimum Value 0
Maximum Value 10
这是二进制日志状态报告的内存使用率阈值。例如,值为
10
(默认值)表示,如果从数据节点接收二进制日志数据的可用内存量低于 10%,则发送集群日志状态信息。 -
System Variable 行 checksum
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 1
Minimum Value 0
Maximum Value 1
传统上,
NDB
创建的表具有行 checksum,这检查硬件问题的同时影响性能。将ndb_row_checksum
设置为 0 意味着新建或修改的表不使用行 checksum,这对所有类型的查询性能产生了显著影响。这个变量默认设置为 1,以提供向后兼容的行为。 -
Command-Line Format --ndb-schema-dist-lock-wait-timeout=value
System Variable 分布式锁定等待超时
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 30
Minimum Value 0
Maximum Value 1200
Unit 秒 在模式分布期间,等待元数据锁定的秒数,以便在每个 SQL 节点上更改其本地数据字典以反映 DDL 语句更改。超过此时间后,将返回警告,表明某个 SQL 节点的数据字典未被更新为更改。这避免了二进制日志记录线程在处理模式操作时等待过长时间。
-
Command-Line Format --ndb-schema-dist-timeout=value
System Variable 分布式超时
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 整数 Default Value 120
Minimum Value 5
Maximum Value 1200
Unit 秒 在模式分布期间检测超时的秒数。这可能表明其他 SQL 节点正在经历过高的活动,或者它们无法获取必要的资源。
-
Command-Line Format --ndb-schema-dist-upgrade-allowed=value
System Variable 允许升级分布式模式
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 布尔值 Default Value true
允许在连接到
NDB
时升级模式分布表。当为 true(默认值)时,这个更改将被推迟,直到所有 SQL 节点都升级到相同版本的 NDB 集群软件。Note直到升级完成,模式分布的性能可能会有一些下降。
-
Command-Line Format --ndb-show-foreign-key-mock-tables[={OFF|ON}]
System Variable 显示外键模拟表
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
显示
NDB
用于支持foreign_key_checks=0
的模拟表。当启用时,创建和删除表时将显示额外的警告。可以在SHOW CREATE TABLE
的输出中看到表的真实(内部)名称。 -
Command-Line Format --ndb-slave-conflict-role=value
Deprecated 是 System Variable 从属冲突角色
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 枚举 Default Value NONE
Valid Values NONE
PRIMARY
SECONDARY
PASS
已弃用的
ndb_conflict_role
的同义词。 -
当该变量设置为
ON
或1
时,它会使使用ENGINE NDB
创建或更改的所有表都变为非日志记录的;也就是说,对于该表的所有数据更改都不会写入重做日志或 checkpoint 到磁盘上,就像使用NOLOGGING
选项创建或更改表一样。有关非日志记录
NDB
表的更多信息,请参阅 NDB_TABLE 选项。ndb_table_no_logging
不会影响NDB
表模式文件的创建;要抑制这些文件,请使用ndb_table_temporary
代替。 -
System Variable ndb_table_temporary
Scope 会话 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value 关闭
当设置为
ON
或1
时,该变量会使NDB
表不写入磁盘:这意味着不会创建表模式文件,也不会记录表。Note当前设置该变量无效。这是一个已知的问题,请参阅 Bug #34036。
-
System Variable ndb_use_copying_alter_table
Scope 全局、会话 Dynamic 否 SET_VAR
Hint Applies否 强制
NDB
在在线ALTER TABLE
操作中使用表复制。默认值为OFF
。 -
System Variable ndb_use_exact_count
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value 关闭
强制
NDB
在SELECT COUNT(*)
查询规划中使用记录计数,以加速此类查询。默认值为OFF
,这允许更快的查询。 -
Command-Line Format --ndb-use-transactions[={OFF|ON}]
System Variable ndb_use_transactions
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value ON
您可以通过将该变量的值设置为
OFF
来禁用NDB
事务支持。这通常不建议这样做,尽管在某些情况下可能有用,例如在客户端会话中导入一个或多个大事务的转储文件时禁用事务支持,以便将多行插入分成多个部分执行,而不是作为单个事务执行。在这种情况下,一旦导入完成,您应该将该变量的值重置为ON
,或者简单地终止会话。 -
System Variable ndb_version
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 字符串 Default Value NDB
引擎版本,作为复合整数。 -
System Variable ndb_version_string
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 字符串 Default Value NDB
引擎版本在ndb-
格式。x.y.z
-
Command-Line Format --replica-allow-batching[={OFF|ON}]
System Variable replica_allow_batching
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value ON
是否启用批量更新在 NDB 集群副本上。
在副本上启用批量更新可以大幅提高性能,特别是在复制
TEXT
、BLOB
和JSON
列时。因此,replica_allow_batching
默认启用。设置这个变量仅在使用 NDB 存储引擎时生效;在 MySQL Server 8.3 中,它存在但不起作用。有关更多信息,请参阅 第 25.7.6 节,“Starting NDB Cluster Replication (Single Replication Channel)”。
-
Command-Line Format --ndb-replica-batch-size=#
System Variable ndb_replica_batch_size
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 2097152
Minimum Value 0
Maximum Value 2147483648
Unit 字节 确定复制应用程序线程使用的批量大小(以字节为单位)。设置这个变量,而不是
--ndb-batch-size
选项,以将此设置应用于副本,排除其他会话。如果这个变量未设置(默认为 2 MB),其有效值是
--ndb-batch-size
的值和 2 MB 的最大值。 -
ndb_replica_blob_write_batch_bytes
Command-Line Format --ndb-replica-blob-write-batch-bytes=#
System Variable ndb_replica_blob_write_batch_bytes
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 2097152
Minimum Value 0
Maximum Value 2147483648
Unit 字节 控制复制应用程序线程用于 blob 数据的批量写入大小。
使用这个变量,而不是
--ndb-blob-write-batch-bytes
选项,以控制副本上的 blob 批量写入大小,排除其他会话。原因是,当ndb_replica_blob_write_batch_bytes
未设置时,其有效 blob 批量写入大小(即,最大待写入的字节数)是--ndb-blob-write-batch-bytes
的值和 2 MB 的最大值。将
ndb_replica_blob_write_batch_bytes
设置为 0 意味着NDB
不对副本上的 blob 批量写入大小施加限制。 -
Command-Line Format --server-id-bits=#
System Variable 服务器ID位数
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 整数 Default Value 32
Minimum Value 7
Maximum Value 32
该变量指示32位
服务器ID
中的最低有效位数,用于标识服务器。指示服务器实际上是由少于32位标识的,使得一些剩余位可以用于其他目的,例如在NDB API的事件API中存储用户数据OperationOptions
结构中(NDB Cluster使用AnyValue存储服务器ID).当从
服务器ID
中提取有效服务器ID以检测复制循环时,服务器将忽略剩余位。服务器ID位数
变量用于屏蔽服务器ID
中的无关位,以便在I/O和SQL线程中决定是否忽略事件基于服务器ID.该数据可以从二进制日志中读取,使用mysqlbinlog,前提是它自己的
服务器ID位数
变量设置为32(默认值).如果
服务器ID
的值大于或等于2的服务器ID位数
的幂;否则,mysqld将拒绝启动.该系统变量仅支持NDB Cluster,不支持标准MySQL 8.3 Server.
-
Command-Line Format --slave-allow-batching[={OFF|ON}]
Deprecated 是 System Variable slave_allow_batching
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value ON
已弃用,
replica_allow_batching
的同义词. -
System Variable transaction_allow_batching
Scope 会话 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
当设置为
1
或ON
时,该变量启用事务中的语句批处理。要使用该变量,必须首先禁用autocommit
,将其设置为0
或OFF
;否则,设置transaction_allow_batching
无效.使用该变量时,需要确保事务仅执行写操作,因为启用该变量可能会导致从“before”图像中读取数据。您应该确保在发出SELECT语句之前提交所有挂起的事务(使用明确的
COMMIT
语句,如果需要).Important不应在可能依赖前一个语句结果的语句中使用
transaction_allow_batching
.该变量当前仅支持NDB Cluster.
系统变量在以下列表中都与ndbinfo
信息数据库相关。
-
System Variable ndbinfo_database
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 字符串 Default Value ndbinfo
显示用于
NDB
信息数据库的名称;默认为ndbinfo
。这是一个只读变量,其值是在编译时确定的。 -
Command-Line Format --ndbinfo-max-bytes=#
System Variable ndbinfo_max_bytes
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 0
Minimum Value 0
Maximum Value 65535
仅用于测试和调试。
-
Command-Line Format --ndbinfo-max-rows=#
System Variable ndbinfo_max_rows
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 10
Minimum Value 1
Maximum Value 256
仅用于测试和调试。
-
System Variable ndbinfo_offline
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
将
ndbinfo
数据库置于脱机模式下,在这种模式下,表和视图可以被打开,即使它们实际上不存在,或者它们存在但在NDB
中具有不同的定义。从这些表(或视图)中不返回行。 -
Command-Line Format --ndbinfo-show-hidden[={OFF|ON}]
System Variable ndbinfo_show_hidden
Scope 全局、会话 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
Valid Values ON
OFF
是否显示
ndbinfo
数据库的底层内部表在 mysql 客户端中。默认为OFF
。Note当
ndbinfo_show_hidden
启用时,内部表仅在ndbinfo
数据库中显示;它们不在TABLES
或其他INFORMATION_SCHEMA
表中可见,无论变量的设置如何。 -
System Variable ndbinfo_table_prefix
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 字符串 Default Value ndb$
前缀用于命名ndbinfo数据库的基本表(通常隐藏,除非通过设置
ndbinfo_show_hidden
暴露)。这是一个只读变量,默认值为ndb$
;前缀本身是在编译时确定的。 -
System Variable ndbinfo_version
Scope 全局 Dynamic 否 SET_VAR
Hint Applies否 Type 字符串 Default Value 显示当前使用的
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
使用强制发送的自适应发送调用次数。
有关更多信息,请参阅第 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
读取该变量,但它仅关联当前会话,不受其他客户端的影响。有关更多信息,请参阅 第 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
读取该变量,但它仅关联当前会话,不受其他客户端的影响。有关更多信息,请参阅 第 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 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 二进制日志注入器线程接收到的事件字节数。
尽管可以使用
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
读取该变量,但它仅关系到当前会话,不受其他客户端的影响。有关更多信息,请参阅 第 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 节点)通过任何主键、唯一键或扫描操作读取的所有行。
您应该注意,这个值可能不完全准确,以 regard to 由
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 Server(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 Server(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 和 auto-increment 操作对客户端不可见的隐式执行。尽管这个变量可以使用
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 Server(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 Server(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
该变量表示线程等待扫描结果信号的次数,例如等待扫描结果或等待扫描关闭。
尽管该变量可以使用
SHOW GLOBAL STATUS
或SHOW SESSION STATUS
读取,但它在作用域上是全局的。有关更多信息,请参阅 第 25.6.16 节,“NDB API 统计计数器和变量”。
-
如果服务器作为 NDB 集群节点,则该变量的值是其在集群中的节点 ID。
如果服务器不属于 NDB 集群,则该变量的值为 0。
-
如果服务器是 NDB 集群的一部分,则该变量的值是其从中获取配置数据的主机名或 IP 地址。
如果服务器不属于 NDB 集群,则该变量的值为空字符串。
-
如果服务器是 NDB 集群的一部分,则该变量的值是其连接到集群管理服务器以获取配置数据的端口号。
如果服务器不属于 NDB 集群,则该变量的值为 0。
-
显示集群当前配置的生成号。这可以用作指示器,以确定自从该 SQL 节点最后连接到集群以来集群的配置是否已更改。
-
在 NDB 集群复制冲突解决中,该变量显示使用
NDB$EPOCH()
冲突解决在给定 mysqld 重新启动以来发现的冲突行数。有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
在 NDB 集群复制冲突解决中使用,该变量显示自上次重新启动以来,在给定的 mysqld 上使用
NDB$EPOCH_TRANS()
冲突解决发现的冲突行数。有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
显示 NDB 集群复制冲突解决中,在源被指定为主节点以来,使用
NDB$EPOCH2()
发现的冲突行数,自上次重新启动以来。有关更多信息,请参阅 NDB$EPOCH2()。
-
在 NDB 集群复制冲突解决中使用,该变量显示自上次重新启动以来,在给定的 mysqld 上使用
NDB$EPOCH_TRANS2()
冲突解决发现的冲突行数。有关更多信息,请参阅 NDB$EPOCH2_TRANS()。
-
在 NDB 集群复制冲突解决中使用,该变量显示自上次重新启动以来,在当前 SQL 节点上由于 “最大时间戳获胜” 冲突解决未应用的行数。
有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
显示 NDB 集群复制冲突解决中,自上次重新启动以来,在当前 SQL 节点上使用
NDB$MAX_DELETE_WIN()
冲突解决被拒绝的行数。有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
Ndb_conflict_fn_max_del_win_ins
显示 NDB 集群复制冲突解决中,自上次重新启动以来,在当前 SQL 节点上使用
NDB$MAX_DEL_WIN_INS()
冲突解决被拒绝的插入行数。有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
在 NDB 集群复制冲突解决中使用,该变量显示自上次重新启动以来,在当前 SQL 节点上由于 “最大时间戳获胜” 冲突解决未插入的行数。
有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
在 NDB 集群复制冲突解决中,这个变量显示了由于“相同时间戳获胜”冲突解决在给定的 mysqld 重新启动以来没有应用于行的次数。
有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
Ndb_conflict_last_conflict_epoch
检测到冲突的最新 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 集群复制冲突解决时,这个状态变量包含了在次要副本上准备执行的反射操作的数量。
有关更多信息,请参阅 第 25.7.12 节,“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 集群复制冲突解决”。
-
Ndb_conflict_trans_row_reject_count
在 NDB 集群复制冲突解决中,用于显示由于事务冲突检测函数确定为冲突而重新对齐的总行数。这包括不仅是
Ndb_conflict_trans_row_conflict_count
,还包括任何依赖于冲突事务的行。有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
Ndb_conflict_trans_reject_count
在 NDB 集群复制冲突解决中,用于显示事务冲突检测函数发现的冲突事务数。
有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
Ndb_conflict_trans_detect_iter_count
在 NDB 集群复制冲突解决中,显示提交 epoch 事务所需的内部迭代次数。应该大于或等于
Ndb_conflict_trans_conflict_commit_count
。有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
Ndb_conflict_trans_conflict_commit_count
在 NDB 集群复制冲突解决中,显示 epoch 事务提交次数,需要事务冲突处理。
有关更多信息,请参阅 第 25.7.12 节,“NDB 集群复制冲突解决”。
-
在使用 delete-delete 冲突检测时,这是检测到的 delete-delete 冲突次数,其中 delete 操作被应用,但指示的行不存在。
-
提供了操作对
NDB
内核的往返次数。 -
最近提交的 epoch,由
NDB
提交。 -
最近提交的 epoch,由这个
NDB
客户端提交。 -
自从服务器最后启动以来,NDB 元数据更改检测线程发现的更改次数,以 respect to MySQL 数据字典。
-
自从 SQL 节点最后重新启动以来,NDB binlog 线程无法同步的元数据对象数。
如果对象被排除,它将不会被再次考虑自动同步,直到用户手动纠正不匹配。可以通过使用语句如
SHOW CREATE TABLE
、table
SELECT * FROM
或任何其他触发表发现的语句来纠正。table
-
自从最后一次重新启动以来,这个 SQL 节点上的 NDB 元数据对象的同步数量。
-
如果服务器是 NDB 集群的一部分,则该变量的值是集群中的数据节点数。
如果服务器不是 NDB 集群的一部分,则该变量的值为 0。
-
将连接推送到 NDB 内核以进行分布式处理的总数。
Note使用
EXPLAIN
测试的连接也将计入该数字。 -
将连接推送到 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 集群复制冲突解决”。
-
该变量保存了自 NDB 集群最后一次启动以来,
NDBCLUSTER
执行的总扫描数量。 -
Ndb_slave_max_replicated_epoch
已弃用的同义词
Ndb_replica_max_replicated_epoch
。 -
如果该 MySQL 服务器连接到 NDB 集群,则该只读变量显示集群系统名称。否则,该值为空字符串。
-
当前会话中使用提示的交易数量。与
Ndb_api_trans_start_count_session
比较,以获取所有NDB交易能够使用提示的比例。