本节提供有关特定于 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有效值 OFFFORCE使用 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有效值 FIXEDDYNAMIC设置新表的默认
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有效值 LINHASHKEYHASH控制
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有效值 relaxedstrict设置 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有效值 ONOFFFORCE启用
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有效值 ONOFFFORCE启用或禁用处理
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_INCREMENTID 的数量;在给定语句中,一次至少获取 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有效值 NONEPRIMARYSECONDARYPASS确定此 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有效值 FIXEDDYNAMIC设置新表的默认
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有效值 LINHASHKEYHASH控制
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_enable1000 毫秒 0/4G loop_idle空闲时休眠的时间 1000 毫秒 0/4G loop_busy当有更多工作等待时休眠的时间 100 毫秒 0/4G update_batch1 0/4G read_batch4 1/4G idle_batch32 1/4G check_batch8 1/4G check_delay检查新统计信息的频率 10 分钟 1/4G delete_batch8 0/4G clean_delay1 分钟 0/4G error_batch4 1/4G error_delay1 分钟 1/4G evict_batch8 1/4G evict_delay从读取时间开始清除 LRU 缓存 1 分钟 0/4G cache_limit此 mysqld 用于缓存索引统计信息的内存最大量(以字节为单位);当超过此限制时,会清除缓存。 32 MB 0/4G cache_lowpct90 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提示适用否 类型 布尔值 默认值 ONNDB使用后台线程来检查每个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有效值 NONEPRIMARYSECONDARYPASS已弃用的
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有效值 ONOFF是否在 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_slaveNdb_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_slaveNdb_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_slaveNdb_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_slaveNdb_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_slaveNdb_api_bytes_received_count_replica的已弃用同义词。此 MySQL 服务器(SQL 节点)从数据节点接收的数据量(以字节为单位)。
虽然可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取此变量,但它在作用域上实际上是全局的。有关更多信息,请参见 第 25.6.16 节,“NDB API 统计计数器和变量”.
Ndb_api_event_data_count_injectorNDB 二进制日志注入器线程接收的行更改事件的数量。
虽然可以使用
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_injectorNDB 二进制日志注入器线程接收的除了行更改事件之外的事件的数量。
虽然可以使用
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_injectorNDB 二进制日志注入器线程接收的事件的字节数。
虽然可以使用
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_slaveNdb_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_slaveNdb_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 节点)执行的任何主键、唯一键或扫描操作读取的所有行。
请注意,由于以下事实,此值对于
SELECTCOUNT(*)查询读取的行可能不完全准确,因为在这种情况下,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_slaveNdb_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_slaveNdb_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_slaveNdb_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_slaveNdb_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_slaveNdb_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_slaveNdb_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_slaveNdb_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_slaveNdb_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_slaveNdb_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_slaveNdb_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_slaveNdb_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,tableSELECT * 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_epochNdb_replica_max_replicated_epoch的过时同义词。如果此 MySQL 服务器连接到 NDB 集群,则此只读变量显示集群系统名称。否则,值为一个空字符串。
当前会话中启动的使用提示的事务数量。与
Ndb_api_trans_start_count_session进行比较,以获得能够使用提示的所有 NDB 事务的比例。