本节提供有关特定于 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忽略跳过的 epoch 事务。单独使用时无效。-
命令行格式 --ndb-batch-size系统变量 ndb_batch_size范围 全局,会话 动态 是 SET_VAR提示适用否 类型 整数 默认值 32768最小值 0最大值 2147483648单位 字节 这将设置用于 NDB 事务批次的字节大小。
--ndb-cluster-connection-pool=#命令行格式 --ndb-cluster-connection-pool系统变量 ndb_cluster_connection_pool系统变量 ndb_cluster_connection_pool范围 全局 范围 全局 动态 否 动态 否 SET_VAR提示适用否 SET_VAR提示适用否 类型 整数 默认值 1最小值 1最大值 63通过将此选项设置为大于 1 的值(默认值),mysqld 进程可以使用多个连接到集群,有效地模拟多个 SQL 节点。每个连接都需要在集群配置 (
config.ini) 文件中具有自己的[api]或[mysqld]部分,并且会计算到集群支持的 API 连接的最大数量中。假设您有两个集群主机计算机,每个计算机运行一个 SQL 节点,其 mysqld 进程使用
--ndb-cluster-connection-pool=4启动;这意味着集群必须有 8 个 API 插槽可用于这些连接(而不是 2 个)。所有这些连接在 SQL 节点连接到集群时建立,并以循环方式分配给线程。此选项仅在主机上运行 mysqld 且该主机具有多个 CPU、多个内核或两者兼有时才有用。为了获得最佳效果,该值应小于主机上可用内核的总数。将其设置为大于此值的数值可能会严重降低性能。
重要由于每个使用连接池的 SQL 节点都占用多个 API 节点插槽(每个插槽在集群中都有其自己的节点 ID),因此您不得在启动使用连接池的任何 mysqld 进程时将节点 ID 作为集群连接字符串的一部分使用。
在使用
--ndb-cluster-connection-pool选项时,在连接字符串中设置节点 ID 会在 SQL 节点尝试连接到集群时导致节点 ID 分配错误。--ndb-cluster-connection-pool-nodeids=list命令行格式 --ndb-cluster-connection-pool-nodeids系统变量 ndb_cluster_connection_pool_nodeids范围 全局 动态 否 SET_VAR提示适用否 类型 设置 默认值 指定 SQL 节点使用的连接到集群的节点 ID 的逗号分隔列表。此列表中的节点数量必须与为
--ndb-cluster-connection-pool选项设置的值相同。--ndb-blob-read-batch-bytes=bytes命令行格式 --ndb-blob-read-batch-bytes系统变量 ndb_blob_read_batch_bytes范围 全局,会话 动态 是 SET_VAR提示适用否 类型 整数 默认值 65536最小值 0最大值 4294967295此选项可用于设置在 NDB 集群应用程序中对
BLOB数据读取进行批处理的大小(以字节为单位)。当当前事务中要读取的BLOB数据量超过此批处理大小时,任何挂起的BLOB读取操作会立即执行。此选项的最大值为 4294967295;默认值为 65536。将其设置为 0 会禁用
BLOB读取批处理。注意在 NDB API 应用程序中,您可以使用
setMaxPendingBlobReadBytes()和getMaxPendingBlobReadBytes()方法控制BLOB写入批处理。--ndb-blob-write-batch-bytes=bytes命令行格式 --ndb-blob-write-batch-bytes系统变量 ndb_blob_write_batch_bytes范围 全局,会话 动态 是 SET_VAR提示适用否 类型 整数 默认值 65536最小值 0最大值 4294967295单位 字节 此选项可用于设置在 NDB 集群应用程序中对
BLOB数据写入进行批处理的大小(以字节为单位)。当当前事务中要写入的BLOB数据量超过此批处理大小时,任何挂起的BLOB写入操作会立即执行。此选项的最大值为 4294967295;默认值为 65536。将其设置为 0 会禁用
BLOB写入批处理。注意在 NDB API 应用程序中,您可以使用
setMaxPendingBlobWriteBytes()和getMaxPendingBlobWriteBytes()方法控制BLOB写入批处理。--ndb-connectstring=connection_string命令行格式 --ndb-connectstring类型 字符串 使用
NDBCLUSTER存储引擎时,此选项指定用于分发集群配置数据的管理服务器。有关语法,请参见 第 25.4.3.3 节,“NDB 集群连接字符串”.--ndb-default-column-format=[FIXED|DYNAMIC]命令行格式 --ndb-default-column-format={FIXED|DYNAMIC}系统变量 ndb_default_column_format范围 全局 动态 是 SET_VAR提示适用否 类型 枚举 默认值 FIXED有效值 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在
ndb_binlog_index表中记录源服务器 ID 和纪元。注意这使得特定纪元可以在
ndb_binlog_index中具有多行,每个源纪元一行。有关更多信息,请参见 第 25.7.4 节,“NDB 集群复制架构和表”。
--ndb-log-transaction-dependency命令行格式 --ndb-log-transaction-dependency={true|false}系统变量 ndb_log_transaction_dependency范围 全局 动态 否 SET_VAR提示适用否 类型 布尔值 默认值 false导致
NDB二进制日志记录线程为其写入二进制日志的每个事务计算事务依赖项。默认值为FALSE。此选项不能在运行时设置;相应的
ndb_log_transaction_dependency系统变量是只读的。-
命令行格式 --ndb-log-transaction-id[={OFF|ON}]系统变量 ndb_log_transaction_id范围 全局 动态 否 SET_VAR提示适用否 类型 布尔值 默认值 OFF导致复制的 mysqld 在二进制日志的每一行中写入 NDB 事务 ID。默认值为
FALSE。--ndb-log-transaction-id是使用NDB$EPOCH_TRANS()函数启用 NDB 集群复制冲突检测和解决所必需的(请参见 NDB$EPOCH_TRANS())。有关更多信息,请参见 第 25.7.12 节,“NDB 集群复制冲突解决”。 -
命令行格式 --ndb-log-update-as-write[={OFF|ON}]系统变量 ndb_log_update_as_write范围 全局 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 ON源上的更新是作为更新(
OFF)还是写入(ON)写入二进制日志。当此选项启用时,并且--ndb-log-updated-only和--ndb-log-update-minimal都已禁用,不同类型的操作将按以下列表中所述记录INSERT:记录为WRITE_ROW事件,没有前映像;后映像以所有列记录。UPDATE:记录为WRITE_ROW事件,没有前映像;后映像以所有列记录。DELETE:记录为DELETE_ROW事件,所有列都在前映像中记录;后映像未记录。
此选项可用于 NDB 复制冲突解决,并结合前面提到的另外两个 NDB 日志记录选项;请参见 ndb_replication 表,以获取更多信息。
-
命令行格式 --ndb-log-updated-only[={OFF|ON}]系统变量 ndb_log_updated_only范围 全局 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 ON是否 mysqld 仅写入更新(
ON)还是完整行(OFF)到二进制日志。当此选项启用时,并且--ndb-log-update-as-write和--ndb-log-update-minimal都已禁用,不同类型的操作将按以下列表中所述记录INSERT:记录为WRITE_ROW事件,没有前映像;后映像以所有列记录。UPDATE:记录为UPDATE_ROW事件,主键列和更新列同时出现在前映像和后映像中。DELETE:记录为DELETE_ROW事件,主键列包含在前映像中;后映像未记录。
此选项可用于 NDB 复制冲突解决,并结合前面提到的另外两个 NDB 日志记录选项;请参见 ndb_replication 表,以获取有关这些选项如何相互交互的更多信息。
-
命令行格式 --ndb-log-update-minimal[={OFF|ON}]系统变量 ndb_log_update_minimal范围 全局 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 OFF以最小方式记录更新,仅在前映像中写入主键值,仅在后映像中写入更改的列。如果复制到除
NDB之外的存储引擎,这可能会导致兼容性问题。当此选项启用时,并且--ndb-log-updated-only和--ndb-log-update-as-write都已禁用,不同类型的操作将按以下列表中所述记录INSERT:记录为WRITE_ROW事件,没有前映像;后映像以所有列记录。UPDATE:记录为UPDATE_ROW事件,主键列在前映像中;所有列 除了 主键列都在后映像中记录。DELETE:记录为DELETE_ROW事件,所有列都在前映像中记录;后映像未记录。
此选项可用于 NDB 复制冲突解决,并结合前面提到的另外两个 NDB 日志记录选项;请参见 ndb_replication 表,以获取更多信息。
--ndb-mgm-tls=[relaxed|strict]命令行格式 --ndb-mgm-tls=[strict|relaxed]系统变量 ndb_mgm_tls范围 全局 动态 否 SET_VAR提示适用否 类型 枚举 默认值 relaxed有效值 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,或者文件(即,没有指定NodeId或Id参数的部分)中必须存在一个 “open”[mysqld]或[api]部分。如果节点 ID 是作为连接字符串的一部分指定的,这也是正确的。无论如何确定节点 ID,它都将显示为
SHOW STATUS输出中的全局状态变量Ndb_cluster_node_id的值,以及SHOW ENGINE NDBCLUSTER STATUS输出的connection行中的cluster_node_id。有关 NDB 集群 SQL 节点的节点 ID 的更多信息,请参见 第 25.4.3.7 节,“在 NDB 集群中定义 SQL 和其他 API 节点”。
-
命令行格式 --ndbinfo[=value]类型 枚举 默认值 ON有效值 ONOFFFORCE启用
ndbinfo信息数据库的插件。默认情况下,只要启用NDBCLUSTER,它就会处于 ON 状态。 --ndb-optimization-delay=milliseconds命令行格式 --ndb-optimization-delay=#系统变量 ndb_optimization_delay范围 全局 动态 是 SET_VAR提示适用否 类型 整数 默认值 10最小值 0最大值 100000单位 milliseconds 通过
OPTIMIZE TABLE语句在NDB表上设置行集之间等待的毫秒数。默认值为 10。--ndb-optimized-node-selection命令行格式 --ndb-optimized-node-selection为事务选择节点启用优化。默认情况下启用;使用
--skip-ndb-optimized-node-selection禁用。-
命令行格式 --ndb-tls-search-path=path系统变量 ndb_tls_search_path范围 全局 动态 否 SET_VAR提示适用否 类型 路径名 默认值(Unix) $HOME/tls默认值(Windows) $HOMEDIR/tls用于搜索 NDB TLS 连接的 CA 和私钥的目录列表。该列表在 Unix 平台上以逗号分隔,在 Windows 上以分号分隔。
--ndb-transid-mysql-connection-map=state命令行格式 --ndb-transid-mysql-connection-map[=state]类型 枚举 默认值 ON有效值 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 服务器等待与 NDB Cluster 管理和数据节点建立连接的时间段,然后再接受 MySQL 客户端连接。时间以秒为单位指定。默认值为
30。 -
命令行格式 --ndb-wait-setup=#系统变量 ndb_wait_setup范围 全局 动态 否 SET_VAR提示适用否 类型 整数 默认值 120默认值 30默认值 15默认值 15最小值 0最大值 31536000单位 秒 此变量显示 MySQL 服务器等待
NDB存储引擎完成设置的时间段,然后再超时并将NDB视为不可用。时间以秒为单位指定。默认值为30。 -
命令行格式 --skip-ndbcluster禁用
NDBCLUSTER存储引擎。这是在构建了NDBCLUSTER存储引擎支持的二进制文件中的默认值;服务器仅在明确给出--ndbcluster选项时,才会为该存储引擎分配内存和其他资源。有关示例,请参见 第 25.4.1 节,“NDB Cluster 的快速测试设置”。
本节详细介绍了特定于 NDB Cluster 和 NDB 存储引擎的 MySQL 服务器系统变量。有关不特定于 NDB Cluster 的系统变量,请参见 第 7.1.8 节,“服务器系统变量”。有关使用系统变量的一般信息,请参见 第 7.1.9 节,“使用系统变量”。
-
命令行格式 --ndb-autoincrement-prefetch-sz=#系统变量 ndb_autoincrement_prefetch_sz范围 全局,会话 动态 是 SET_VAR提示适用否 类型 整数 默认值 512最小值 1最大值 65536确定自动递增列中间隙的概率。将其设置为
1以最小化此概率。为了优化,将其设置为较高的值会使插入更快,但会降低在插入批次中使用连续自动递增编号的可能性。此变量仅影响在语句之间获取的
AUTO_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)在循环 (“active-active”) 复制设置中的角色。
ndb_conflict_role可以取PRIMARY、SECONDARY、PASS或NULL(默认值)中的任何一个值。在更改ndb_conflict_role之前,必须停止副本 SQL 线程。此外,无法直接在PASS和PRIMARY或SECONDARY之间直接更改;在这种情况下,您必须确保 SQL 线程已停止,然后首先执行SET @@GLOBAL.ndb_conflict_role = 'NONE'。此变量替换了已弃用的
ndb_slave_conflict_role。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
-
命令行格式 --ndb-data-node-neighbour=#系统变量 ndb_data_node_neighbour范围 全局 动态 是 SET_VAR提示适用否 类型 整数 默认值 0最小值 0最大值 255设置 “最近” 数据节点的 ID——也就是说,会选择一个首选的非本地数据节点来执行事务,而不是一个与 SQL 或 API 节点运行在同一主机上的节点。这用于确保当访问完全复制的表时,我们会访问此数据节点,以确保始终使用该表的本地副本,只要有可能。这也可以用来提供事务提示。
在物理上比同一主机上的其他节点更近,并且网络吞吐量更高的情况下,这可以提高数据访问时间。
有关更多信息,请参见 第 15.1.20.12 节,“设置 NDB 注释选项”。
注意在 NDB API 应用程序中,提供了一种等效的方法
set_data_node_neighbour()。 -
命令行格式 --ndb-dbg-check-shares=#系统变量 ndb_dbg_check_shares范围 全局,会话 动态 是 SET_VAR提示适用否 类型 整数 默认值 0最小值 0最大值 1设置为 1 时,检查是否有任何共享正在保留。仅在调试版本中可用。
-
命令行格式 --ndb-default-column-format={FIXED|DYNAMIC}系统变量 ndb_default_column_format范围 全局 动态 是 SET_VAR提示适用否 类型 枚举 默认值 FIXED有效值 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表是否完全复制。此设置可以使用CREATE TABLE或ALTER TABLE语句中的COMMENT="NDB_TABLE=FULLY_REPLICATED=..."为单个表覆盖。有关语法和其他信息,请参见 第 15.1.20.12 节,“设置 NDB 注释选项”。 -
命令行格式 --ndb-index-stat-enable[={OFF|ON}]系统变量 ndb_index_stat_enable范围 全局,会话 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 ON在查询优化中使用
NDB索引统计信息。默认值为ON。无论此选项的值如何,索引统计信息表都会在服务器启动时始终创建。
-
命令行格式 --ndb-index-stat-option=value系统变量 ndb_index_stat_option范围 全局,会话 动态 是 SET_VAR提示适用否 类型 字符串 默认值 loop_checkon=1000ms,loop_idle=1000ms,loop_busy=100ms, update_batch=1,read_batch=4,idle_batch=32,check_batch=32, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M, cache_lowpct=90此变量用于提供 NDB 索引统计信息生成的调整选项。该列表包含以逗号分隔的选项名称和值的名称-值对,并且该列表不能包含任何空格字符。
设置
ndb_index_stat_option时未使用的选项不会从其默认值更改。例如,您可以设置ndb_index_stat_option = 'loop_idle=1000ms,cache_limit=32M'。时间值可以选择性地添加
h(小时)、m(分钟)或s(秒)后缀。毫秒值可以选择性地使用ms指定;毫秒值不能使用h、m或s指定。)整数值可以添加K、M或G后缀。可以使用此变量设置的选项名称在下面的表格中显示。该表格还提供了选项的简要描述、它们的默认值以及(如果适用)它们的最小值和最大值。
表 25.19 ndb_index_stat_option 选项和值
名称 描述 默认/单位 最小/最大 loop_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 M 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 复制基于读取冲突的冲突检测和解决。要启用这些锁,请将
ndb_log_exclusive_reads的值设置为 1。0 是默认值,它会禁用这种锁定。有关更多信息,请参见 读取冲突检测和解决。
-
命令行格式 --ndb-log-orig[={OFF|ON}]系统变量 ndb_log_orig范围 全局 动态 否 SET_VAR提示适用否 类型 布尔值 默认值 OFF显示是否在
ndb_binlog_index表中记录了原始服务器 ID 和时期。使用--ndb-log-orig服务器选项设置。 -
系统变量 ndb_log_transaction_id范围 全局 动态 否 SET_VAR提示适用否 类型 布尔值 默认值 OFF此只读布尔系统变量显示副本 mysqld 是否在二进制日志中写入 NDB 事务 ID(需要使用 “active-active” NDB Cluster 复制以及
NDB$EPOCH_TRANS()冲突检测)。要更改设置,请使用--ndb-log-transaction-id选项。ndb_log_transaction_id在主线 MySQL Server 9.0 中不受支持。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
ndb_log_transaction_compression命令行格式 --ndb-log-transaction-compression系统变量 ndb_log_transaction_compression范围 全局 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 OFF副本 mysqld 是否在二进制日志中写入压缩的事务;仅在 mysqld 已编译为支持
NDB时存在。您应该注意,使用
--binlog-transaction-compression启动 MySQL 服务器会强制启用此变量 (ON),并且这会覆盖在命令行或my.cnf文件中对--ndb-log-transaction-compression所做的任何设置,如下所示$> mysqld_safe --ndbcluster --ndb-connectstring=127.0.0.1 \ --binlog-transaction-compression=ON --ndb-log-transaction-compression=OFF & [1] 27667 $> 2022-07-07T12:29:20.459937Z mysqld_safe Logging to '/usr/local/mysql/data/myhost.err'. 2022-07-07T12:29:20.509873Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data $> mysql -e 'SHOW VARIABLES LIKE "%transaction_compression%"' +--------------------------------------------+-------+ | Variable_name | Value | +--------------------------------------------+-------+ | binlog_transaction_compression | ON | | binlog_transaction_compression_level_zstd | 3 | | ndb_log_transaction_compression | ON | | ndb_log_transaction_compression_level_zstd | 3 | +--------------------------------------------+-------+要仅对
NDB表禁用二进制日志事务压缩,请在启动 mysqld 后,在 mysql 或其他客户端会话中将ndb_log_transaction_compression系统变量设置为OFF。启动后设置
binlog_transaction_compression变量不会影响ndb_log_transaction_compression的值。有关二进制日志事务压缩的更多信息,例如哪些事件被压缩或未被压缩,以及使用此功能时需要注意的行为更改,请参见第 7.4.4.5 节,“二进制日志事务压缩”。
ndb_log_transaction_compression_level_zstd命令行格式 --ndb-log-transaction-compression-level-zstd=#系统变量 ndb_log_transaction_compression_level_zstd范围 全局 动态 是 SET_VAR提示适用否 类型 整数 默认值 3最小值 1最大值 22如果
ndb_log_transaction_compression启用,则用于将压缩事务写入副本二进制日志的ZSTD压缩级别。如果 mysqld 未编译为支持NDB存储引擎,则不支持此功能。有关更多信息,请参见第 7.4.4.5 节,“二进制日志事务压缩”。
-
命令行格式 --ndb-metadata-check[={OFF|ON}]系统变量 ndb_metadata_check范围 全局 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 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 节点;下一个最接近的(按邻近度递减排列)是:到
localhost的 TCP 连接,然后是来自除localhost之外的其他主机上的 TCP 连接。SQL 线程使用 分布式感知 来选择数据节点。也就是说,包含给定事务的第一个语句访问的集群分区的那个数据节点被用作整个事务的事务协调器。(这仅在事务的第一个语句访问的集群分区不超过一个时才有效。)
此选项采用以下整数之一:
0、1、2或3。3是默认值。这些值会影响节点选择,如下所示。0:节点选择未优化。每个数据节点被用作事务协调器 8 次,然后 SQL 线程继续进行到下一个数据节点。1:与 SQL 节点的邻近度用于确定事务协调器。2:使用分布式感知来选择事务协调器。但是,如果事务的第一个语句访问了多个集群分区,则 SQL 节点会恢复到此选项设置为0时看到的循环行为。3:如果可以使用分布式感知来确定事务协调器,则使用它;否则,使用邻近度来选择事务协调器。(这是默认行为。)
邻近度确定如下。
从为
Group参数设置的值开始(默认值为 55)。对于与其他 API 节点共享同一主机的 API 节点,将该值减 1。假设
Group的默认值,与 API 节点位于同一主机的 API 节点的有效值为 54,而远程数据节点的有效值为 55。设置
ndb_data_node_neighbour会进一步将有效Group值减 50,从而导致该节点被视为最接近的节点。只有在所有数据节点都位于 API 节点所处主机的其他主机上,并且需要将其中一个节点专用于 API 节点时才需要这样做。在正常情况下,前面描述的默认调整就足够了。
不建议频繁更改
ndb_data_node_neighbour,因为这会改变集群连接的状态,因此可能会中断每个线程新事务的选择算法,直到它稳定下来。 -
命令行格式 --ndb-read-backup[={OFF|ON}]系统变量 ndb_read_backup范围 全局 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 ON启用从任何片段副本读取任何随后创建的
NDB表;这样做极大地提高了表读取性能,而对写入的影响相对较小。如果 SQL 节点和数据节点使用相同的 hostname 或 IP 地址,则会自动检测到此情况,因此优先选择将读取发送到同一主机。如果这些节点位于同一主机但使用不同的 IP 地址,则可以通过在 SQL 节点上将
ndb_data_node_neighbour的值设置为数据节点的节点 ID 来告知 SQL 节点使用正确的数据节点。要启用或禁用从任何片段副本读取单个表,可以相应地设置表的
NDB_TABLE选项READ_BACKUP,在CREATE TABLE或ALTER TABLE语句中;有关更多信息,请参见第 15.1.20.12 节,“设置 NDB 注释选项”。 ndb_recv_thread_activation_threshold命令行格式 --ndb-recv-thread-activation-threshold=#系统变量 ndb_recv_thread_activation_threshold范围 全局 动态 是 SET_VAR提示适用否 类型 整数 默认值 8最小值 0 (MIN_ACTIVATION_THRESHOLD)最大值 16 (MAX_ACTIVATION_THRESHOLD)当达到此数量的并发活动线程时,接收线程接管对集群连接的轮询。
此变量的作用域是全局的。它也可以在启动时设置。
-
命令行格式 --ndb-recv-thread-cpu-mask=mask系统变量 ndb_recv_thread_cpu_mask范围 全局 动态 是 SET_VAR提示适用否 类型 位图 默认值 [empty]用于将接收线程锁定到特定 CPU 的 CPU 掩码。这指定为十六进制位掩码。例如,
0x33表示每个接收线程使用一个 CPU。空字符串是默认值;将ndb_recv_thread_cpu_mask设置为该值将删除先前设置的任何接收线程锁定。此变量的作用域是全局的。它也可以在启动时设置。
ndb_report_thresh_binlog_epoch_slip命令行格式 --ndb-report-thresh-binlog-epoch-slip=#系统变量 ndb_report_thresh_binlog_epoch_slip范围 全局 动态 是 SET_VAR提示适用否 类型 整数 默认值 10最小值 0最大值 256这表示事件缓冲区中完全缓冲但尚未被 binlog 注入器线程消耗的时期的数量的阈值。当此程度的滑动(延迟)超过阈值时,会报告事件缓冲区状态消息,其中提供
BUFFERED_EPOCHS_OVER_THRESHOLD作为原因(请参见第 25.6.2.3 节,“集群日志中的事件缓冲区报告”)。当从数据节点接收一个时期并在事件缓冲区中完全缓冲时,滑动会增加;当 binlog 注入器线程消耗一个时期时,滑动会减少。空时期会被缓冲和排队,因此只有在使用Ndb::setEventBufferQueueEmptyEpoch()方法(来自 NDB API)启用此功能时,才会将其包含在此计算中。ndb_report_thresh_binlog_mem_usage命令行格式 --ndb-report-thresh-binlog-mem-usage=#系统变量 ndb_report_thresh_binlog_mem_usage范围 全局 动态 是 SET_VAR提示适用否 类型 整数 默认值 10最小值 0最大值 10这是在报告二进制日志状态之前剩余可用内存百分比的阈值。例如,值
10(默认值)表示,如果用于从数据节点接收二进制日志数据的可用内存量低于 10%,则会向集群日志发送状态消息。-
系统变量 ndb_row_checksum范围 全局,会话 动态 是 SET_VAR提示适用否 类型 整数 默认值 1最小值 0最大值 1传统上,
NDB会创建包含行校验和的表,该校验和会检查硬件问题,但会牺牲性能。将ndb_row_checksum设置为 0 表示不会为新表或更改后的表使用行校验和,这会对所有类型的查询的性能产生重大影响。此变量默认设置为 1,以提供向后兼容的行为。 ndb_schema_dist_lock_wait_timeout命令行格式 --ndb-schema-dist-lock-wait-timeout=value系统变量 ndb_schema_dist_lock_wait_timeout范围 全局 动态 是 SET_VAR提示适用否 类型 整数 默认值 30最小值 0最大值 1200单位 秒 在架构分发过程中等待的秒数,以获取每个 SQL 节点上为更改其本地数据字典以反映 DDL 语句更改而采取的元数据锁定。在经过此时间后,会返回警告,提示已更改的某个 SQL 节点的本地数据字典尚未更新。这避免了二进制日志记录线程在处理架构操作时等待过长的时间。
-
命令行格式 --ndb-schema-dist-timeout=value系统变量 ndb_schema_dist_timeout范围 全局 动态 否 SET_VAR提示适用否 类型 整数 默认值 120最小值 5最大值 1200单位 秒 在检测到架构分发期间超时之前等待的秒数。这可能表明其他 SQL 节点正在经历过度的活动,或者它们以某种方式被阻止在此时获取必要的资源。
ndb_schema_dist_upgrade_allowed命令行格式 --ndb-schema-dist-upgrade-allowed=value系统变量 ndb_schema_dist_upgrade_allowed范围 全局 动态 否 SET_VAR提示适用否 类型 布尔值 默认值 true允许在连接到
NDB时升级模式分配表。当为真(默认值)时,此更改将延迟到所有 SQL 节点都升级到相同版本的 NDB Cluster 软件为止。注意模式分配的性能可能会在升级执行之前略有下降。
ndb_show_foreign_key_mock_tables命令行格式 --ndb-show-foreign-key-mock-tables[={OFF|ON}]系统变量 ndb_show_foreign_key_mock_tables范围 全局 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 OFF显示
NDB用来支持foreign_key_checks=0的模拟表。启用此功能时,在创建和删除表时会显示额外的警告。表的实际(内部)名称可以在SHOW CREATE TABLE的输出中看到。-
命令行格式 --ndb-slave-conflict-role=value已弃用 是 系统变量 ndb_slave_conflict_role范围 全局 动态 是 SET_VAR提示适用否 类型 枚举 默认值 NONE有效值 NONEPRIMARYSECONDARYPASSndb_conflict_role的已弃用同义词。 -
系统变量 ndb_table_no_logging范围 会话 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 OFF当此变量设置为
ON或1时,它会导致使用ENGINE NDB创建或更改的所有表都成为非日志型;也就是说,此表的任何数据更改都不会写入重做日志或检查点到磁盘,就像使用NOLOGGING选项为CREATE TABLE或ALTER TABLE创建或更改表一样。有关非日志型
NDB表的更多信息,请参见NDB_TABLE 选项。ndb_table_no_logging对NDB表模式文件的创建没有影响;要抑制这些文件,请使用ndb_table_temporary。 -
系统变量 ndb_table_temporary范围 会话 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 OFF当设置为
ON或1时,此变量会导致NDB表不会写入磁盘:这意味着不会创建任何表模式文件,并且表不会记录。注意目前设置此变量没有任何影响。这是一个已知问题;请参见错误 #34036。
-
系统变量 ndb_use_copying_alter_table范围 全局,会话 动态 否 SET_VAR提示适用否 强制
NDB在遇到在线ALTER TABLE操作问题时使用表复制。默认值为OFF。 -
系统变量 ndb_use_exact_count范围 全局,会话 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 OFF强制
NDB在SELECT COUNT(*)查询计划期间使用记录计数来加快此类查询的速度。默认值为OFF,它允许总体上更快地执行查询。 -
命令行格式 --ndb-use-transactions[={OFF|ON}]系统变量 ndb_use_transactions范围 全局,会话 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 ON可以通过将此变量的值设置为
OFF来禁用NDB事务支持。这通常不推荐,但可能在给定客户端会话中禁用事务支持时很有用,当该会话用于导入一个或多个包含大型事务的转储文件时;这允许将多行插入作为多个部分执行,而不是作为单个事务执行。在这种情况下,一旦导入完成,应该将此会话的变量值重置为ON,或者只需终止该会话。 -
系统变量 ndb_version范围 全局 动态 否 SET_VAR提示适用否 类型 字符串 默认值 NDB引擎版本,作为组合整数。 -
系统变量 ndb_version_string范围 全局 动态 否 SET_VAR提示适用否 类型 字符串 默认值 NDB引擎版本,格式为ndb-。x.y.z -
命令行格式 --replica-allow-batching[={OFF|ON}]系统变量 replica_allow_batching范围 全局 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 ON是否在 NDB Cluster 副本上启用批量更新。
在副本上允许批量更新可以极大地提高性能,尤其是在复制
TEXT、BLOB和JSON列时。出于这个原因,replica_allow_batching默认情况下是启用的。仅当使用
NDB存储引擎进行复制时,设置此变量才会产生影响;在 MySQL Server 9.0 中,它存在但不起作用。有关更多信息,请参见第 25.7.6 节“启动 NDB Cluster 复制(单个复制通道)”。 -
命令行格式 --ndb-replica-batch-size=#系统变量 ndb_replica_batch_size范围 全局 动态 是 SET_VAR提示适用否 类型 整数 默认值 2097152最小值 0最大值 2147483648单位 字节 确定复制应用程序线程使用的批量大小(以字节为单位)。设置此变量而不是
--ndb-batch-size选项,以便将此设置应用于副本,不包括任何其他会话。如果此变量未设置(默认值为 2 MB),其有效值为
--ndb-batch-size的值和 2 MB 之中的较大者。 ndb_replica_blob_write_batch_bytes命令行格式 --ndb-replica-blob-write-batch-bytes=#系统变量 ndb_replica_blob_write_batch_bytes范围 全局 动态 是 SET_VAR提示适用否 类型 整数 默认值 2097152最小值 0最大值 2147483648单位 字节 控制复制应用程序线程对 blob 数据使用的批量写入大小。
使用此变量而不是
--ndb-blob-write-batch-bytes选项来控制副本上的 blob 批量写入大小,不包括任何其他会话。这样做的原因是,当ndb_replica_blob_write_batch_bytes未设置时,有效的 blob 批量大小(即,blob 列要写入的待处理字节的最大数量)由--ndb-blob-write-batch-bytes的值和 2 MB(ndb_replica_blob_write_batch_bytes的默认值)之中的较大者决定。将
ndb_replica_blob_write_batch_bytes设置为 0 意味着NDB不会对副本上的 blob 批量写入的大小施加任何限制。-
命令行格式 --server-id-bits=#系统变量 server_id_bits范围 全局 动态 否 SET_VAR提示适用否 类型 整数 默认值 32最小值 7最大值 32此变量表示 32 位
server_id中实际标识服务器的最低有效位数。指示服务器实际上由少于 32 位标识,这使得某些剩余位可以用于其他目的,例如存储使用 NDB API 的事件 API 在OperationOptions结构的AnyValue中生成的应用程序用户数据(NDB Cluster 使用AnyValue存储服务器 ID)。从
server_id中提取有效服务器 ID 以用于检测复制循环等目的时,服务器会忽略剩余的位。当决定是否应根据服务器 ID 忽略事件时,server_id_bits变量用于在 I/O 和 SQL 线程中屏蔽server_id的任何无关位。此数据可以通过mysqlbinlog从二进制日志中读取,前提是它以其自己的
server_id_bits变量设置为 32(默认值)运行。如果
server_id的值大于或等于 2 的server_id_bits次幂;否则,mysqld拒绝启动。此系统变量仅受 NDB Cluster 支持。它在标准 MySQL 9.0 服务器中不受支持。
-
命令行格式 --slave-allow-batching[={OFF|ON}]已弃用 是 系统变量 slave_allow_batching范围 全局 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 ONreplica_allow_batching的已弃用同义词。 -
系统变量 transaction_allow_batching范围 会话 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 OFF当设置为
1或ON时,此变量启用同一事务内语句的批处理。要使用此变量,必须首先通过将其设置为0或OFF来禁用autocommit;否则,设置transaction_allow_batching将不会产生任何影响。将此变量与仅执行写入的事务一起使用是安全的,因为启用它会导致从“before”图像中读取。在发出
SELECT之前,应确保任何挂起的事务都被提交(如果需要,可以使用显式的COMMIT)。重要在可能存在给定语句的效果取决于同一事务中先前语句的结果的情况下,不应使用
transaction_allow_batching。此变量目前仅受 NDB Cluster 支持。
以下列表中的系统变量都与ndbinfo信息数据库相关。
-
系统变量 ndbinfo_database范围 全局 动态 否 SET_VAR提示适用否 类型 字符串 默认值 ndbinfo显示用于
NDB信息数据库的名称;默认值为ndbinfo。这是一个只读变量,其值在编译时确定。 -
命令行格式 --ndbinfo-max-bytes=#系统变量 ndbinfo_max_bytes范围 全局,会话 动态 是 SET_VAR提示适用否 类型 整数 默认值 0最小值 0最大值 65535仅用于测试和调试。
-
命令行格式 --ndbinfo-max-rows=#系统变量 ndbinfo_max_rows范围 全局,会话 动态 是 SET_VAR提示适用否 类型 整数 默认值 10最小值 1最大值 256仅用于测试和调试。
-
系统变量 ndbinfo_offline范围 全局 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 OFF将
ndbinfo数据库置于离线模式,在这种模式下,即使表和视图实际不存在或存在但具有不同的定义,也可以打开它们NDB。不会从这样的表(或视图)返回任何行。 -
命令行格式 --ndbinfo-show-hidden[={OFF|ON}]系统变量 ndbinfo_show_hidden范围 全局,会话 动态 是 SET_VAR提示适用否 类型 布尔值 默认值 OFF有效值 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 集群和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_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_slave此 MySQL 服务器(SQL 节点)从数据节点接收的数据量(以字节为单位)。
虽然此变量可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_event_data_count_injectorNDB 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_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 binlog 注射器线程接收的事件的字节数。
虽然此变量可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
此 MySQL 服务器(SQL 节点)接收的事件的字节数。
虽然此变量可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
在此客户端会话中基于或使用主键的操作数量。这包括对 blob 表的操作、隐式解锁操作和自动递增操作,以及用户可见的主键操作。
虽然此变量可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
此副本基于或使用主键的操作数量。这包括对 blob 表的操作、隐式解锁操作和自动递增操作,以及用户可见的主键操作。
虽然此变量可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_pk_op_count_replica的过时同义词。此 MySQL 服务器(SQL 节点)基于或使用主键的操作数量。这包括对 blob 表的操作、隐式解锁操作和自动递增操作,以及用户可见的主键操作。
虽然此变量可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_pruned_scan_count_session在此客户端会话中已修剪到单个分区的扫描数量。
虽然此变量可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_pruned_scan_count_replica此副本已修剪到单个分区的扫描数量。
虽然此变量可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_pruned_scan_count_slave此 MySQL 服务器(SQL 节点)执行的扫描次数,这些扫描已修剪到单个分区。
虽然此变量可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取,但它在作用域上实际上是全局的。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_range_scan_count_session在此客户端会话中开始的范围扫描次数。
虽然此变量可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取,但它仅与当前会话相关,不受此mysqld 的任何其他客户端的影响。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_range_scan_count_replica此副本开始的范围扫描次数。
虽然此变量可以使用
SHOW GLOBAL STATUS或SHOW SESSION STATUS读取,但它在作用域上实际上是全局的。如果此 MySQL 服务器不充当副本,或者不使用 NDB 表,则此值始终为 0。有关更多信息,请参见第 25.6.16 节,“NDB API 统计计数器和变量”。
Ndb_api_range_scan_count_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 服务器实际上读取的是伪行,形式为[,并将每个片段中的行数加起来,以获得对表中所有行的估计计数。表片段 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_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 Cluster 节点,则此变量的值为其在集群中的节点 ID。
如果服务器不是 NDB Cluster 的一部分,则此变量的值为 0。
如果服务器是 NDB Cluster 的一部分,则此变量的值为获取其配置数据的集群管理服务器的主机名或 IP 地址。
如果服务器不是 NDB Cluster 的一部分,则此变量的值为空字符串。
如果服务器是 NDB Cluster 的一部分,则此变量的值为通过其连接到获取其配置数据的集群管理服务器的端口号。
如果服务器不是 NDB Cluster 的一部分,则此变量的值为 0。
显示集群当前配置的代号。这可以作为指示器,以确定自此 SQL 节点上次连接到集群以来,集群的配置是否已更改。
此变量用于 NDB Cluster 复制冲突解决,显示自上次重启以来,在给定的 mysqld 上使用
NDB$EPOCH()冲突解决找到的冲突行数。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
此变量用于 NDB Cluster 复制冲突解决,显示自上次重启以来,在给定的 mysqld 上使用
NDB$EPOCH_TRANS()冲突解决找到的冲突行数。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
显示在 NDB Cluster 复制冲突解决中,使用
NDB$EPOCH2()在指定为主服务器的源上找到的冲突行数,自上次重启以来。有关更多信息,请参见 NDB$EPOCH2()。
此变量用于 NDB Cluster 复制冲突解决,显示自上次重启以来,在给定的 mysqld 上使用
NDB$EPOCH_TRANS2()冲突解决找到的冲突行数。有关更多信息,请参见 NDB$EPOCH2_TRANS()。
此变量用于 NDB Cluster 复制冲突解决,显示自上次启动此 mysqld 以来,由于“最大时间戳获胜”冲突解决,在当前 SQL 节点上未应用的行数。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
显示自上次启动此 mysqld 以来,由于使用
NDB$MAX_DELETE_WIN()的 NDB Cluster 复制冲突解决,在当前 SQL 节点上被拒绝的行数。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_fn_max_del_win_ins显示自上次启动此 mysqld 以来,由于使用
NDB$MAX_DEL_WIN_INS()的 NDB Cluster 复制冲突解决,在当前 SQL 节点上被拒绝插入的行数。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
此变量用于 NDB Cluster 复制冲突解决,显示自上次启动此 mysqld 以来,由于“最大时间戳获胜”冲突解决,在当前 SQL 节点上未插入的行数。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
此变量用于 NDB Cluster 复制冲突解决,显示自上次重启以来,在给定的 mysqld 上,由于“相同时间戳获胜”冲突解决,导致未应用的行数。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_last_conflict_epoch此副本检测到冲突的最新纪元。您可以将此值与
Ndb_replica_max_replicated_epoch进行比较;如果Ndb_replica_max_replicated_epoch大于Ndb_conflict_last_conflict_epoch,则尚未检测到任何冲突。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_reflected_op_discard_count使用 NDB Cluster 复制冲突解决时,这是由于在执行期间遇到错误,未在辅助服务器上应用的反射操作数。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_reflected_op_prepare_count使用 NDB Cluster 复制的冲突解决时,此状态变量包含已定义(即,已准备好执行到辅助服务器)的反射操作数。
使用 NDB Cluster 复制的冲突解决时,这表示已准备好执行到辅助服务器的刷新操作数。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_last_stable_epoch由事务性冲突函数找到的冲突行数
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_row_conflict_count此状态变量用于 NDB Cluster 复制冲突解决,显示自上次重启以来,在给定的 mysqld 上,由事务性冲突函数直接找到的冲突行数。
目前,NDB Cluster 支持的唯一事务性冲突检测函数是 NDB$EPOCH_TRANS(),因此,此状态变量实际上与
Ndb_conflict_fn_epoch_trans相同。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_row_reject_count该状态变量用于 NDB Cluster 复制冲突解决,显示由于事务冲突检测函数判定为冲突而重新对齐的行总数。 这不仅包括
Ndb_conflict_trans_row_conflict_count,还包括与冲突事务相关联的所有行或依赖于冲突事务的所有行。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_reject_count该状态变量用于 NDB Cluster 复制冲突解决,显示事务冲突检测函数发现的冲突事务数量。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_detect_iter_count该状态变量用于 NDB Cluster 复制冲突解决,显示提交纪元事务所需的内部迭代次数。 应该(略)大于或等于
Ndb_conflict_trans_conflict_commit_count。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
Ndb_conflict_trans_conflict_commit_count该状态变量用于 NDB Cluster 复制冲突解决,显示在需要事务冲突处理后提交的纪元事务数量。
有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
使用删除-删除冲突检测时,这是检测到的删除-删除冲突数量,其中应用了删除操作,但指示的行不存在。
提供操作对
NDB内核进行的往返次数。NDB最近提交的纪元。此
NDB客户端最近提交的纪元。自服务器上次启动以来,NDB 元数据变更检测线程发现与 MySQL 数据字典相关的变更次数。
自上次重启以来,NDB binlog 线程无法在此 SQL 节点上同步的元数据对象数量。
如果对象被排除,则不会再次考虑自动同步,直到用户手动更正不匹配。 这可以通过尝试使用表来完成,例如
SHOW CREATE TABLE、tableSELECT * FROM或任何其他将触发表发现的语句。table自上次重启以来,在此 SQL 节点上同步的 NDB 元数据对象数量。
如果服务器是 NDB Cluster 的一部分,则此变量的值是集群中的数据节点数量。
如果服务器不是 NDB Cluster 的一部分,则此变量的值为 0。
推送到 NDB 内核以在数据节点上进行分布式处理的连接总数。
注意使用
EXPLAIN测试的可以推送到 NDB 内核的连接将计入此数字。推送到 NDB 内核但无法在 NDB 内核中处理的连接数量。
成功推送到
NDB并执行的连接数量。由推送到 NDB 内核的连接从 NDB 内核返回到 mysqld 的行数。
该变量保存自上次启动 NDB Cluster 以来由
NDBCLUSTER执行的扫描数量,其中NDBCLUSTER能够使用分区修剪。将此变量与
Ndb_scan_count结合使用,可以帮助在架构设计中最大限度地提高服务器对扫描进行修剪到单个表分区的效率,从而只涉及单个数据节点的副本。Ndb_replica_max_replicated_epoch此副本上最近提交的纪元。 您可以将此值与
Ndb_conflict_last_conflict_epoch进行比较; 如果Ndb_replica_max_replicated_epoch是两个值中较大的一个,则尚未检测到任何冲突。有关更多信息,请参见 第 25.7.12 节,“NDB Cluster 复制冲突解决”。
该变量保存自上次启动 NDB Cluster 以来由
NDBCLUSTER执行的扫描总数。Ndb_slave_max_replicated_epochNdb_replica_max_replicated_epoch的弃用同义词。如果此 MySQL 服务器连接到 NDB 集群,则此只读变量将显示集群系统名称。 否则,该值为一个空字符串。
当前会话中启动的使用提示的事务数量。 与
Ndb_api_trans_start_count_session进行比较,以获取能够使用提示的所有 NDB 事务的比例。