NDB群集的MySQL服务器选项和变量
本节提供有关特定于NDB Cluster的MySQL服务器选项,服务器和状态变量的信息。有关使用它们的一般信息以及NDB Cluster以外的其他选项和变量,请参见“ MySQL服务器”。
有关群集配置文件(通常为config.ini
)中使用的NDB群集配置参数,请参见“ NDB群集的配置”。
NDB群集的MySQL服务器选项
本节描述了与NDB群集有关的mysqld服务器选项。有关不是特定于NDB Cluster的mysqld选项的信息,以及有关在mysqld中使用选项的一般信息,请参见“服务器命令选项”。
有关与其他NDB群集进程(ndbd,ndb_mgmd和ndb_mgm)一起使用的命令行选项的信息,请参见“ NDB群集程序的公用选项— NDB群集程序的公用选项”。有关NDB
实用程序(例如ndb_desc,ndb_size.pl和ndb_show_tables)使用的命令行选项的信息,请参见“ NDB群集程序”。
--ndbcluster
属性 值 命令行格式 --ndbcluster[=value] 被禁用 skip-ndbcluster 类型 列举 默认值 ON 有效值 OFF
FORCE
该
NDBCLUSTER
存储引擎是必要的使用NDB簇。如果mysqld二进制文件包含对NDBCLUSTER
存储引擎的支持,则默认情况下会禁用该引擎。使用该--ndbcluster
选项将其启用。使用--skip-ndbcluster
明确禁止发动机。如果还使用了该
--ndbcluster
选项,则该选项将被忽略(并且未启用NDB
存储引擎)。(将此选项与一起使用既没有必要,也不是合意的。)--initialize
--initialize
--ndb-allow-copying-alter-table=[ON|OFF]
属性 值 命令行格式 --ndb-allow-copying-alter-table[={OFF|ON}] 系统变量 ndb_allow_copying_alter_table 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 ON Let
ALTER TABLE
和其他DDL语句在NDB
表上使用复制操作。设置以OFF
防止发生这种情况;这样做可以提高关键应用程序的性能。--ndb-batch-size=#
属性 值 命令行格式 --ndb-batch-size 系统变量 ndb_batch_size 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 整数 默认值 32768 最低值 0 最大值 31536000 这将设置用于NDB事务批处理的字节大小。
--ndb-cluster-connection-pool=#
属性 值 命令行格式 --ndb-cluster-connection-pool 系统变量 ndb_cluster_connection_pool 系统变量 ndb_cluster_connection_pool 范围 Global 范围 Global 动态 没有 动态 没有 SET_VAR
提示适用没有 SET_VAR
提示适用没有 类型 整数 默认值 1 最低值 1 最大值 63 通过将此选项设置为大于1的值(默认值),mysqld进程可以使用与群集的多个连接,从而有效地模仿了多个SQL节点。每个连接在群集配置()文件中都需要其自己的部分
[api]
或[mysqld]
部分config.ini
,并计入群集支持的最大API连接数。假设您有2台群集主机,每台群集主机运行一个SQL节点,该节点的mysqld进程以
--ndb-cluster-connection-pool=4
;开头。这意味着群集必须有8个API插槽可用于这些连接(而不是2个)。所有这些连接都是在SQL节点连接到群集时建立的,并以循环方式分配给线程。仅当在具有多个CPU,多个内核或两者都有的主机上运行mysqld时,此选项才有用。为了获得最佳结果,该值应小于主机上可用内核的总数。将其设置为大于该值的值可能会严重降低性能。
重要
因为每个使用连接池的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 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 组 默认值 指定以逗号分隔的节点ID列表,用于连接到SQL节点使用的群集。此列表中的节点数必须与为该
--ndb-cluster-connection-pool
选项设置的值相同。--ndb-blob-read-batch-bytes=bytes
属性 值 命令行格式 --ndb-blob-read-batch-bytes 系统变量 ndb_blob_read_batch_bytes 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 65536 最低值 0 最大值 4294967295 此选项可用于设置
BLOB
NDB Cluster应用程序中的数据读取批处理的大小(以字节为单位)。当此批处理大小超出BLOB
当前事务中要读取的数据量时,BLOB
将立即执行所有挂起的读取操作。此选项的最大值为4294967295;默认值为65536。将其设置为0具有禁用
BLOB
读取批处理的效果。注意
在NDB API应用程序中,可以
BLOB
使用setMaxPendingBlobReadBytes()
和getMaxPendingBlobReadBytes()
方法控制写批处理。--ndb-blob-write-batch-bytes=bytes
属性 值 命令行格式 --ndb-blob-write-batch-bytes 系统变量 ndb_blob_write_batch_bytes 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 65536 最低值 0 最大值 4294967295 此选项可用于设置
BLOB
NDB Cluster应用程序中的批量数据写入的大小(以字节为单位)。当该批处理大小超出BLOB
当前事务中要写入的数据量时,BLOB
将立即执行所有挂起的写操作。此选项的最大值为4294967295;默认值为65536。将其设置为0具有禁用
BLOB
写批处理的效果。注意
在NDB API应用程序中,可以
BLOB
使用setMaxPendingBlobWriteBytes()
和getMaxPendingBlobWriteBytes()
方法控制写批处理。--ndb-connectstring=connection_string
属性 值 命令行格式 --ndb-connectstring 类型 string 使用
NDBCLUSTER
存储引擎时,此选项指定分发群集配置数据的管理服务器。有关语法,请参见“ NDB群集连接字符串”。--ndb-default-column-format=[FIXED|DYNAMIC]
属性 值 命令行格式 --ndb-default-column-format={FIXED|DYNAMIC} 系统变量 ndb_default_column_format 范围 Global 动态 是 SET_VAR
提示适用没有 类型 列举 默认值 FIXED 有效值 FIXED
DYNAMIC
设置默认表
COLUMN_FORMAT
和ROW_FORMAT
新表(请参见“ CREATE TABLE语句”)。默认值为FIXED
。--ndb-deferred-constraints=[0|1]
属性 值 命令行格式 --ndb-deferred-constraints 系统变量 ndb_deferred_constraints 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 0 最低值 0 最大值 1 控制是否将对唯一索引的约束检查推迟到提交时间(支持这种检查的时间)之前。
0
是默认值。NDB群集或NDB群集复制的操作通常不需要此选项,主要用于测试。
--ndb-schema-dist-timeout=#
属性 值 命令行格式 --ndb-schema-dist-timeout=# 介绍了 8.0.17-ndb-8.0.17 系统变量 ndb_schema_dist_timeout 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 整数 默认值 120 最低值 5 最大值 1200 指定此mysqld在将其标记为超时之前等待架构操作完成的最长时间(以秒为单位)。
--ndb-distribution=[KEYHASH|LINHASH]
属性 值 命令行格式 --ndb-distribution={KEYHASH|LINHASH} 系统变量 ndb_distribution 范围 Global 动态 是 SET_VAR
提示适用没有 类型 列举 默认值 KEYHASH 有效值 LINHASH
KEYHASH
控制
NDB
表的默认分发方法。可以设置为KEYHASH
(键哈希)或LINHASH
(线性哈希)。KEYHASH
是默认值。--ndb-log-apply-status
属性 值 命令行格式 --ndb-log-apply-status[={OFF|ON}] 系统变量 ndb_log_apply_status 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 使从属mysqld
mysql.ndb_apply_status
使用其自己的服务器ID而不是主服务器的服务器ID,将从其直接主服务器接收到的所有更新记录到其自己的二进制日志中的表中。在循环或链式复制设置中,这允许此类更新传播到mysql.ndb_apply_status
配置为当前mysqld的从属的任何MySQL服务器的表。在链式复制设置中,使用此选项可使下游(从属)群集了解其相对于所有上游参与者(主服务器)的位置。
在循环复制设置中,此选项将导致对
ndb_apply_status
表的更改以完成整个电路,最终传播回原始的NDB群集。这还允许充当母版的集群参见其更改(历元)何时已应用于圆中的其他集群。除非使用该
--ndbcluster
选项启动MySQL服务器,否则该选项无效。--ndb-log-empty-epochs=[ON|OFF]
属性 值 命令行格式 --ndb-log-empty-epochs[={OFF|ON}] 系统变量 ndb_log_empty_epochs 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 导致一个时期,即使启用了该时期,也没有更改写入
ndb_apply_status
和ndb_binlog_index
表log_slave_updates
。默认情况下,此选项是禁用的。禁用
--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 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 启用时,导致不产生任何更改的更新写入
ndb_apply_status
和ndb_binlog_index
表log_slave_updates
。默认情况下,此选项为禁用(
OFF
)。禁用--ndb-log-empty-update
会导致没有更改的更新不会写入二进制日志。--ndb-log-exclusive-reads=[0|1]
属性 值 命令行格式 --ndb-log-exclusive-reads[={OFF|ON}] 系统变量 ndb_log_exclusive_reads 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 0 使用此选项启动服务器会导致使用排他锁记录主键读取,从而允许NDB群集复制冲突检测和基于读取冲突的解决。您也可以在运行时通过将
ndb_log_exclusive_reads
系统变量的值分别设置为1或0来启用和禁用这些锁。默认值为0(禁用锁定)。有关更多信息,请参阅阅读冲突检测和解决方案。
--ndb-log-orig
属性 值 命令行格式 --ndb-log-orig[={OFF|ON}] 系统变量 ndb_log_orig 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 在
ndb_binlog_index
表中记录原始服务器ID和时期。注意
这样一来,给定的纪元就可能有多个行
ndb_binlog_index
,每个原始纪元都有一个行。有关更多信息,请参见“ NDB群集复制架构和表”。
--ndb-log-transaction-id
属性 值 命令行格式 --ndb-log-transaction-id[={OFF|ON}] 系统变量 ndb_log_transaction_id 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 使从属mysqld在二进制日志的每一行中写入NDB事务ID。默认值为
FALSE
。主线MySQL Server 8.0不支持此选项。需要使用
NDB$EPOCH_TRANS()
函数来启用NDB群集复制冲突检测和解决(请参阅 NDB $ EPOCH_TRANS())。有关更多信息,请参见“ NDB群集复制冲突解决”。不推荐使用的
log_bin_use_v1_row_events
系统变量,默认为OFF
,不能设置为ON
当您使用--ndb-log-transaction-id
。--ndb-log-update-minimal
属性 值 命令行格式 --ndb-log-update-minimal[={OFF|ON}] 系统变量 ndb_log_update_minimal 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 通过仅在前映像中写入主键值,并仅在后映像中写入更改的列,以最小的方式记录日志更新。如果复制到以外的存储引擎,可能会导致兼容性问题
NDB
。--ndb-mgmd-host=host[:port]
属性 值 命令行格式 --ndb-mgmd-host=host_name[:port_num] 类型 string 默认值 localhost:1186 可用于设置程序要连接到的单个管理服务器的主机和端口号。如果程序在其连接信息中需要节点ID或对多个管理服务器的引用(或两者都引用),请改用该
--ndb-connectstring
选项。--ndb-nodeid=#
属性 值 命令行格式 --ndb-nodeid=# 状态变量 Ndb_cluster_node_id 范围 Global 动态 没有 类型 整数 最低值 1 最大值 255 最大值 63 在NDB群集中设置此MySQL服务器的节点ID。
无论使用这两个选项的顺序如何,该
--ndb-nodeid
选项都会覆盖使用设置的任何节点ID--ndb-connectstring
。另外,如果
--ndb-nodeid
使用,则必须在的[mysqld]
或[api]
部分中找到匹配的节点IDconfig.ini
,或者在文件中必须存在“ open ”[mysqld]
或[api]
部分(即,未指定NodeId
或Id
参数的部分)。如果将节点ID指定为连接字符串的一部分,则也是如此。无论该节点ID是如何确定的,其被示出为全局状态变量的值
Ndb_cluster_node_id
中的输出SHOW STATUS
,并作为cluster_node_id
中connection
的输出行SHOW ENGINE NDBCLUSTER STATUS
。有关NDB群集SQL节点的节点ID的更多信息,请参见“在NDB群集中定义SQL和其他API节点”。
--ndbinfo={ON|OFF|FORCE}
属性 值 命令行格式 --ndbinfo[=value]
(≥8.0.13-ndb-8.0.13)介绍了 8.0.13-ndb-8.0.13 类型 列举 默认值 ON 有效值 OFF
FORCE
启用
ndbinfo
信息数据库插件。默认情况下,无论何时启用,此选项都为ONNDBCLUSTER
。--ndb-optimization-delay=milliseconds
属性 值 命令行格式 --ndb-optimization-delay=# 系统变量 ndb_optimization_delay 范围 Global 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 10 最低值 0 最大值 100000 通过
OPTIMIZE TABLE
表上的语句设置在行集之间等待的毫秒数NDB
。预设值为10。ndb-transid-mysql-connection-map=state
属性 值 命令行格式 --ndb-transid-mysql-connection-map[=state] 类型 列举 默认值 ON 有效值 ON
OFF
FORCE
启用或禁用处理数据库
ndb_transid_mysql_connection_map
中表的插件INFORMATION_SCHEMA
。所采用的值中的一个ON
,OFF
或FORCE
。ON
(默认)启用插件。OFF
禁用插件,使其ndb_transid_mysql_connection_map
无法访问。FORCE
如果插件无法加载和启动,则阻止MySQL服务器启动。您可以
ndb_transid_mysql_connection_map
通过检查的输出来参见表插件是否正在运行SHOW PLUGINS
。--ndb-wait-connected=seconds
属性 值 命令行格式 --ndb-wait-connected=# 系统变量 ndb_wait_connected 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 整数 默认值 30 最低值 0 最大值 31536000 此选项设置MySQL服务器在接受MySQL客户端连接之前等待与NDB群集管理和数据节点建立连接的时间。时间以秒为单位指定。默认值为
30
。--ndb-wait-setup=seconds
属性 值 命令行格式 --ndb-wait-setup=# 系统变量 ndb_wait_setup 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 整数 默认值 30 默认值 30 默认值 15 默认值 15 最低值 0 最大值 31536000 该变量显示MySQL服务器等待
NDB
存储引擎完成设置的时间,然后超时并NDB
视为不可用。时间以秒为单位指定。默认值为30
。--skip-ndbcluster
属性 值 命令行格式 --skip-ndbcluster 禁用
NDBCLUSTER
存储引擎。这是使用NDBCLUSTER
存储引擎支持构建的二进制文件的默认设置。只有--ndbcluster
明确指定了选项,服务器才会为此存储引擎分配内存和其他资源。有关示例,请参见“ NDB群集的快速测试设置”。
NDB群集系统变量
本节提供有关特定于NDB Cluster和NDB
存储引擎的MySQL服务器系统变量的详细信息。对于不是特定于NDB Cluster的系统变量,请参见“服务器系统变量”。有关使用系统变量的一般信息,请参见“使用MySQL服务器系统变量”。
ndb_autoincrement_prefetch_sz
属性 值 命令行格式 --ndb-autoincrement-prefetch-sz=# 系统变量 ndb_autoincrement_prefetch_sz 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 整数 默认值(≥8.0.19-ndb-8.0.19) 512 默认值(≤8.0.18-ndb-8.0.18) 1 最低值 1 最大值 65536 确定自动递增列中的间隔的概率。将其设置
1
为最小化。将其设置为较高的值以进行优化可加快插入速度,但可降低在一批插入物中使用连续自动递增编号的可能性。该变量仅影响
AUTO_INCREMENT
语句之间获取的ID 数量;在给定语句中,一次至少获得32个ID。重要
此变量不会影响使用进行的插入
INSERT ... SELECT
。ndb_cache_check_time
属性 值 命令行格式 --ndb-cache-check-time=# 不推荐使用 是 系统变量 ndb_cache_check_time 范围 Global 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 0 MySQL查询缓存检查NDB Cluster SQL节点之间经过的毫秒数。将此设置为0(默认值和最小值)意味着查询缓存将检查每个查询的有效性。
此变量的建议最大值为1000,这表示每秒执行一次检查。较大的值表示执行检查,并且由于在不同的SQL节点上进行更新的频率较低而可能使检查无效。通常不希望将其设置为大于2000的值。
注意
ndb_cache_check_time
MySQL 5.7不推荐使用查询缓存;查询缓存已在MySQL 8.0中删除。ndb_clear_apply_status
属性 值 命令行格式 --ndb-clear-apply-status[={OFF|ON}] 系统变量 ndb_clear_apply_status 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 ON 默认情况下,执行将
RESET SLAVE
导致NDB群集复制从属服务器清除其ndb_apply_status
表中的所有行。您可以通过设置禁用此功能ndb_clear_apply_status=OFF
。ndb_data_node_neighbour
属性 值 命令行格式 --ndb-data-node-neighbour=# 系统变量 ndb_data_node_neighbour 范围 Global 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 0 最低值 0 最大值 255 设置“最近的”数据节点的ID,即,选择首选的非本地数据节点来执行事务,而不是与SQL或API节点在同一主机上运行的节点。这用于确保访问完全复制的表时,我们在此数据节点上对其进行访问,以确保在可能的情况下始终使用表的本地副本。这也可以用于提供交易提示。
如果节点在物理上比同一个主机上的其他节点更近,并因此具有更高的网络吞吐量,则可以缩短数据访问时间。
有关更多信息,请参见“设置NDB_TABLE选项”。
注意
set_data_node_neighbour()
提供了一种等效方法供NDB API应用程序使用。ndb_dbg_check_shares
属性 值 命令行格式 --ndb-dbg-check-shares=# 介绍了 8.0.13-ndb-8.0.13 系统变量 ndb_dbg_check_shares 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 0 最低值 0 最大值 1 设置为1时,请检查是否没有共享。仅在调试版本中可用。
在NDB 8.0.13中添加。
ndb_default_column_format
属性 值 命令行格式 --ndb-default-column-format={FIXED|DYNAMIC} 系统变量 ndb_default_column_format 范围 Global 动态 是 SET_VAR
提示适用没有 类型 列举 默认值 FIXED 有效值 FIXED
DYNAMIC
设置默认表
COLUMN_FORMAT
和ROW_FORMAT
新表(请参见“ CREATE TABLE语句”)。默认值为FIXED
。ndb_deferred_constraints
属性 值 命令行格式 --ndb-deferred-constraints=# 系统变量 ndb_deferred_constraints 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 0 最低值 0 最大值 1 控制是否在支持约束检查的情况下推迟约束检查。
0
是默认值。NDB群集或NDB群集复制的操作通常不需要此变量,并且主要用于测试。
ndb_distribution
属性 值 命令行格式 --ndb-distribution={KEYHASH|LINHASH} 系统变量 ndb_distribution 范围 Global 动态 是 SET_VAR
提示适用没有 类型 列举 默认值 KEYHASH 有效值 LINHASH
KEYHASH
控制
NDB
表的默认分发方法。可以设置为KEYHASH
(键哈希)或LINHASH
(线性哈希)。KEYHASH
是默认值。ndb_eventbuffer_free_percent
属性 值 命令行格式 --ndb-eventbuffer-free-percent=# 系统变量 ndb_eventbuffer_free_percent 范围 Global 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 20 最低值 1 最大值 99 设置分配给事件缓冲区(ndb_eventbuffer_max_alloc)的最大内存的百分比,该内存在达到最大值后,在再次开始缓冲之前应该在事件缓冲区中可用。
ndb_eventbuffer_max_alloc
属性 值 命令行格式 --ndb-eventbuffer-max-alloc=# 系统变量 ndb_eventbuffer_max_alloc 范围 Global 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 0 最低值 0 最大值 4294967295 设置NDB API可以分配用于缓冲事件的最大内存量(以字节为单位)。0表示不强加任何限制,并且是默认值。
ndb_extra_logging
属性 值 命令行格式 ndb_extra_logging=# 系统变量 ndb_extra_logging 范围 Global 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 1 使用此变量可以在MySQL错误日志中记录特定于
NDB
存储引擎的信息。当此变量设置为0时,唯一特定于此的信息将
NDB
写入MySQL错误日志中,该信息与事务处理有关。如果将其设置为大于0但小于10的值,NDB
还将记录表架构和连接事件,以及是否正在使用冲突解决方法以及其他NDB
错误和信息。如果该值设置为10或更大,则有关NDB
内部的信息(例如,群集节点之间的数据分发进度)也将写入MySQL错误日志。预设值为1。ndb_force_send
属性 值 命令行格式 --ndb-force-send[={OFF|ON}] 系统变量 ndb_force_send 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 ON 强制
NDB
立即发送缓冲区,而无需等待其他线程。默认为ON
。ndb_fully_replicated
属性 值 命令行格式 --ndb-fully-replicated[={OFF|ON}] 系统变量 ndb_fully_replicated 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 确定是否
NDB
完全复制新表。可以COMMENT="NDB_TABLE=FULLY_REPLICATED=..."
在CREATE TABLE
orALTER TABLE
语句中使用单个表覆盖此设置。有关语法和其他信息,请参见“设置NDB_TABLE选项”。ndb_index_stat_enable
属性 值 命令行格式 --ndb-index-stat-enable[={OFF|ON}] 系统变量 ndb_index_stat_enable 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 ON NDB
在查询优化中使用索引统计信息。默认值为ON
。ndb_index_stat_option
属性 值 命令行格式 --ndb-index-stat-option=value 系统变量 ndb_index_stat_option 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 string 默认值 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
。下表中显示了可以使用此变量设置的选项的名称。该表还提供了有关选项,其默认值以及(如果适用)其最小值和最大值的简要说明。
ndb_index_stat_option选项和值
名称 描述 默认值/单位 最小/最大 loop_enable 1000毫秒 0 / 4G loop_idle 空闲时睡觉的时间 1000毫秒 0 / 4G loop_busy 等待更多工作的时候睡觉 100毫秒 0 / 4G update_batch 1个 0 / 4G read_batch 4 1/4克 idle_batch 32 1/4克 check_batch 8 1/4克 check_delay 多久检查一次新统计数据 10米 1/4克 delete_batch 8 0 / 4G clean_delay 1米 0 / 4G error_batch 4 1/4克 error_delay 1米 1/4克 evict_batch 8 1/4克 evict_delay 从读取时间开始清理LRU缓存 1米 0 / 4G cache_limit 该mysqld用于缓存索引统计的最大存储量(字节);超过此数量时清理缓存。 3200万 0 / 4G cache_lowpct 90 0/100 zero_total 将此设置为1会将所有累加计数器重置 ndb_index_stat_status
为0。完成此操作后,此选项值也将重置为0。0 0/1 ndb_join_pushdown
属性 值 系统变量 ndb_join_pushdown 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 ON 此变量控制是否将
NDB
表上的联接下推到NDB内核(数据节点)。以前,NDB
联接是由SQL节点使用多次访问来处理的;但是,当ndb_join_pushdown
启用时,可推送联接将完整地发送到数据节点,在其中可以将其分发到数据节点中,并在数据的多个副本上并行执行,并将单个合并结果返回给mysqld。这样可以大大减少SQL节点与处理此类联接所需的数据节点之间的往返次数。默认情况下
ndb_join_pushdown
启用。NDB下推连接的条件。为了使连接可推送,它必须满足以下条件:
只能比较列,所有要连接的列必须使用完全相同的数据类型。这意味着(例如)
INT
列和BIGINT
列上的联接也不能被下推。以前,不能将诸如之类的表达式下推。在NDB 8.0.18及更高版本中取消了此限制。对要比较的任何列进行任何操作的结果都必须产生与列本身相同的类型。
t1.a = t2.a +constant
同样从NDB 8.0.18开始,可以下推比较来自同一表的列的表达式。这些列(或这些列上任何操作的结果)必须具有完全相同的类型,包括相同的符号,长度,字符集和排序规则,精度和小数位数(如果适用)。
- 不支持查询引用
BLOB
或TEXT
列。 不支持显式锁定;但是,将
NDB
强制执行存储引擎的特征性隐式基于行的锁定。这意味着使用的
FOR UPDATE
联接不能被下推。为了使加盟下推,子表的连接必须使用的一个访问
ref
,eq_ref
或const
访问方法,或这些方法的一些组合。外部联接的子表只能使用推送
eq_ref
。如果强制联接的根是
eq_ref
或const
,则只能eq_ref
附加由联接的子表。(由联接的表ref
很可能成为另一个推入联接的根。)如果查询优化器决定
Using join cache
使用候选子表,则该表不能作为子表推入。但是,它可能是另一组推入表的根。- 联接由
[LINEAR] HASH
,LIST
或RANGE
当前明确划分的引用表无法下推。
您可以通过使用
EXPLAIN
;检查是否可以向下推给定的联接。当可以按下连接时,您可以在输出pushed join
的Extra
列中看到对的引用,如本示例所示:mysql>
EXPLAIN ->SELECT e.first_name, e.last_name, t.title, d.dept_name ->FROM employees e ->JOIN dept_emp deON e.emp_no=de.emp_no ->JOIN departments dON d.dept_no=de.dept_no ->JOIN titles tON 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_pushed_queries_defined
,Ndb_pushed_queries_dropped
,Ndb_pushed_queries_executed
,和Ndb_pushed_reads
。 ndbinfo.counters
表中属于DBSPJ
内核块的计数器。有关这些计数器的信息,请参见“ ndbinfo计数器表”。另请参阅《NDB Cluster API开发人员指南》中的DBSPJ模块。
ndb_log_apply_status
属性 值 命令行格式 --ndb-log-apply-status[={OFF|ON}] 系统变量 ndb_log_apply_status 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 只读变量,显示服务器是否使用该
--ndb-log-apply-status
选项启动。ndb_log_bin
属性 值 命令行格式 --ndb-log-bin[={OFF|ON}] 系统变量 ndb_log_bin 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值(≥8.0.16-ndb-8.0.16) OFF 默认值(≤8.0.15-ndb-8.0.15) ON 使对
NDB
表的更新被写入二进制日志。如果使用尚未在服务器上启用二进制日志记录,则此变量的设置无效log_bin
。在NDB 8.0.16和更高版本中,ndb_log_bin
默认值为0(FALSE)。ndb_log_binlog_index
属性 值 命令行格式 --ndb-log-binlog-index[={OFF|ON}] 系统变量 ndb_log_binlog_index 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 ON 使历元到二进制日志中位置的映射插入
ndb_binlog_index
表中。如果尚未使用启用服务器的二进制日志记录,则设置此变量无效log_bin
。(此外,ndb_log_bin
不得禁用。)ndb_log_binlog_index
默认为1
(ON
);通常,在生产环境中永远不需要更改此值。ndb_log_empty_epochs
属性 值 命令行格式 --ndb-log-empty-epochs[={OFF|ON}] 系统变量 ndb_log_empty_epochs 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 当此变量设置为0时,没有更改的纪元事务不会写入二进制日志,尽管即使对于中的空纪元也仍会写一行
ndb_binlog_index
。ndb_log_empty_update
属性 值 命令行格式 --ndb-log-empty-update[={OFF|ON}] 系统变量 ndb_log_empty_update 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 当此变量设置为
ON
(1
)时,即使log_slave_updates
启用,更新也不会更改的事务将写入二进制日志。ndb_log_exclusive_reads
属性 值 命令行格式 --ndb-log-exclusive-reads[={OFF|ON}] 系统变量 ndb_log_exclusive_reads 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 0 此变量确定是否使用排他锁记录主键读取,从而允许NDB群集复制冲突检测和基于读取冲突的解决。要启用这些锁定,请将值设置
ndb_log_exclusive_reads
为1。默认值为 0。有关更多信息,请参阅阅读冲突检测和解决方案。
ndb_log_orig
属性 值 命令行格式 --ndb-log-orig[={OFF|ON}] 系统变量 ndb_log_orig 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 显示表中是否记录了原始服务器ID和时期
ndb_binlog_index
。使用--ndb-log-orig
服务器选项进行设置。ndb_log_transaction_id
属性 值 系统变量 ndb_log_transaction_id 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 该只读布尔系统变量显示从属mysqld是否在二进制日志中写入NDB事务ID(需要将“ active-active ” NDB群集复制与
NDB$EPOCH_TRANS()
冲突检测一起使用)。要更改设置,请使用--ndb-log-transaction-id
选项。ndb_log_transaction_id
主线MySQL Server 8.0不支持。有关更多信息,请参见“ NDB群集复制冲突解决”。
ndb_metadata_check
属性 值 命令行格式 --ndb-metadata-check[={OFF|ON}] 介绍了 8.0.16-ndb-8.0.16 系统变量 ndb_metadata_check 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 ON 从NDB 8.0.16开始,与MySQL数据字典相比,
NDB
使用后台线程每秒钟检查一次元数据更改ndb_metadata_check_interval
。可以通过设置ndb_metadata_check
为禁用此元数据更改检测线程OFF
。默认情况下启用该线程。ndb_metadata_check_interval
属性 值 命令行格式 --ndb-metadata-check-interval=# 介绍了 8.0.16-ndb-8.0.16 系统变量 ndb_metadata_check_interval 范围 Global 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 60 最低值 0 最大值 31536000 在NDB 8.0.16及更高版本中,NDB在后台运行元数据更改检测线程,以确定NDB字典相对于MySQL数据字典何时已更改。默认情况下,两次检查之间的间隔为60秒;可以通过设置的值进行调整
ndb_metadata_check_interval
。要启用或禁用线程,请使用ndb_metadata_check
。ndb_metadata_sync
属性 值 介绍了 8.0.19-ndb-8.0.19 系统变量 ndb_metadata_sync 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 false 设置此变量将使更改监视器线程覆盖为
ndb_metadata_check
或设置的任何值ndb_metadata_check_interval
,并输入一个连续更改检测时间段。当线程确定没有更多要检测的更改时,它将停止直到二进制日志记录线程完成所有检测到的对象的同步为止。ndb_metadata_sync
然后将设置为false
,并且更改监视器线程将还原为ndb_metadata_check
和的设置所确定的行为ndb_metadata_check_interval
。ndb_optimized_node_selection
属性 值 命令行格式 --ndb-optimized-node-selection=# 系统变量 ndb_optimized_node_selection 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 整数 默认值 3 最低值 0 最大值 3 优化节点选择有两种形式,在此进行描述:
- 该SQL节点使用 promixity来确定事务协调;即,“最靠近”的SQL节点数据节点被选择作为事务协调器。为此,与SQL节点具有共享内存连接的数据节点被视为与SQL节点“最接近”;下一个最接近的(按递减的顺序排列)是:与的TCP连接
localhost
,然后是除以外的其他主机的TCP连接localhost
。 - 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
不建议进行频繁的更改,因为这会更改群集连接的状态,从而可能中断来自每个线程的新事务的选择算法,直到稳定为止。- 该SQL节点使用 promixity来确定事务协调;即,“最靠近”的SQL节点数据节点被选择作为事务协调器。为此,与SQL节点具有共享内存连接的数据节点被视为与SQL节点“最接近”;下一个最接近的(按递减的顺序排列)是:与的TCP连接
ndb_read_backup
属性 值 命令行格式 --ndb-read-backup[={OFF|ON}] 系统变量 ndb_read_backup 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值(≥8.0.19-ndb-8.0.19) ON 默认值(≤8.0.18-ndb-8.0.18) OFF 为
NDB
随后创建的任何表启用从任何副本的读取;这样做以相对较小的写入成本大大提高了表读取性能。要为单个表启用或禁用从任何副本的读取,可以在或语句中相应地设置该表的
NDB_TABLE
选项。有关更多信息,请参见“设置NDB_TABLE选项”。READ_BACKUP
CREATE TABLE
ALTER TABLE
ndb_recv_thread_activation_threshold
属性 值 命令行格式 --ndb-recv-thread-activation-threshold=# 系统变量 ndb_recv_thread_activation_threshold 范围 Global 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 8 最低值 0(MIN_ACTIVATION_THRESHOLD) 最大值 16(MAX_ACTIVATION_THRESHOLD) 当达到并发活动线程的数量时,接收线程将接管集群连接的轮询。
此变量的作用域是全局的。也可以在启动时进行设置。
ndb_recv_thread_cpu_mask
属性 值 命令行格式 --ndb-recv-thread-cpu-mask=mask 系统变量 ndb_recv_thread_cpu_mask 范围 Global 动态 是 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 范围 Global 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 10 最低值 0 最大值 256 这代表事件缓冲区中完全缓冲但尚未由二进制日志注入器线程消耗的时期数的阈值。超过此滑动程度(滞后)时,将报告事件缓冲区状态消息,并
BUFFERED_EPOCHS_OVER_THRESHOLD
提供其原因(请)。当从数据节点接收到一个纪元并将其完全缓冲在事件缓冲区中时,滑动会增加;当二进制日志注入器线程消耗了一个纪元时,它减少了,减少了。空历元被缓冲和排队,因此仅当使用Ndb::setEventBufferQueueEmptyEpoch()
NDB API中的方法。ndb_report_thresh_binlog_mem_usage
属性 值 命令行格式 --ndb-report-thresh-binlog-mem-usage=# 系统变量 ndb_report_thresh_binlog_mem_usage 范围 Global 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 10 最低值 0 最大值 10 这是报告二进制日志状态之前剩余可用内存百分比的阈值。例如,值
10
(默认值)表示如果用于从数据节点接收二进制日志数据的可用内存量降到10%以下,则会向集群日志发送状态消息。ndb_row_checksum
属性 值 系统变量 ndb_row_checksum 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 1 最低值 0 最大值 1 传统上,
NDB
创建的表具有行校验和,用于检查硬件问题,但会降低性能。设置ndb_row_checksum
为0表示行校验和不用于新表或更改后的表,这对所有类型的查询的性能都有重要影响。默认情况下,此变量设置为1,以提供向后兼容的行为。ndb_schema_dist_lock_wait_timeout
属性 值 命令行格式 --ndb-schema-dist-lock-wait-timeout=value 介绍了 8.0.18-ndb-8.0.18 系统变量 ndb_schema_dist_lock_wait_timeout 范围 Global 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 30 最低值 0 最大值 1200 在模式分发期间,等待每个SQL节点上的元数据锁定以更改其本地数据字典以反映DDL语句更改所要等待的秒数。在此时间过去之后,将返回警告,表明未使用更改更新给定SQL节点的数据字典。这样可以避免二进制日志记录线程在处理架构操作时等待过多的时间。
ndb_schema_dist_timeout
属性 值 命令行格式 --ndb-schema-dist-timeout=value 介绍了 8.0.16-ndb-8.0.16 系统变量 ndb_schema_dist_timeout 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 整数 默认值 120 最低值 5 最大值 1200 在架构分发期间检测到超时之前等待的秒数。这可能表明其他SQL节点正在经历过多的活动,或者此时正以某种方式阻止它们获取必要的资源。
ndb_schema_dist_upgrade_allowed
属性 值 命令行格式 --ndb-schema-dist-upgrade-allowed=value 介绍了 8.0.17-ndb-8.0.17 系统变量 ndb_schema_dist_upgrade_allowed 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 布尔型 默认值 true 连接到时允许升级架构分发表
NDB
。如果为true(默认值),则此更改将推迟到所有SQL节点都升级到相同版本的NDB Cluster软件之前。注意
在执行升级之前,方案分发的性能可能会有所下降。
ndb_show_foreign_key_mock_tables
属性 值 命令行格式 --ndb-show-foreign-key-mock-tables[={OFF|ON}] 系统变量 ndb_show_foreign_key_mock_tables 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 显示用于
NDB
支持的模拟表foreign_key_checks=0
。启用此功能后,在创建和删除表时会显示额外的警告。该表的真实(内部)名称可以在的输出中看到SHOW CREATE TABLE
。ndb_slave_conflict_role
属性 值 命令行格式 --ndb-slave-conflict-role=value 系统变量 ndb_slave_conflict_role 范围 Global 动态 是 SET_VAR
提示适用没有 类型 列举 默认值 NONE 有效值 NONE
PRIMARY
SECONDARY
PASS
确定此SQL节点(和NDB群集)在循环(“主动-主动”)复制设置中的角色。
ndb_slave_conflict_role
可以采取的值的任何一个PRIMARY
,SECONDARY
,PASS
,或NULL
(缺省值)。必须先停止从SQL线程,然后才能进行更改ndb_slave_conflict_role
。此外,它是不可能直接在...之间改变PASS
和任一PRIMARY
或SECONDARY
直接;在这种情况下,必须确保SQL线程已停止,然后SET @@GLOBAL.ndb_slave_conflict_role ='NONE'
先执行。有关更多信息,请参见“ NDB群集复制冲突解决”。
ndb_table_no_logging
属性 值 系统变量 ndb_table_no_logging 范围 Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 当此变量设置为
ON
或时1
,它将导致NDB
表不被检查点指向磁盘。更具体地说,此设置适用于使用启用ENGINE NDB
时创建或更改ndb_table_no_logging
的表,即使在ndb_table_no_logging
以后进行更改时,该设置也会继续适用于表的生命周期。假设A
,B
,C
,和D
是表,我们创建(或许也会改变),而且我们还更改设置ndb_table_no_logging
,如下所示:SET @@ndb_table_no_logging = 1;CREATE TABLE A ...ENGINE NDB ;CREATE TABLE B ...ENGINE MYISAM;CREATE TABLE C ...ENGINE MYISAM;ALTER TABLE BENGINE NDB ;SET @@ndb_table_no_logging = 0;CREATE TABLE D ...ENGINE NDB ;ALTER TABLE CENGINE NDB ;SET @@ndb_table_no_logging = 1;在上一个事件序列之后,不对表
A
和B
进行检查点;A
与一起创建,ENGINE NDB
并且B被更改为useNDB
,两者均ndb_table_no_logging
处于启用状态。但是,表C
和D
被记录;C
已更改为使用NDB
,D
并使用禁用了创建ENGINE NDB
,两者均ndb_table_no_logging
被禁用。设置ndb_table_no_logging
回1
还是ON
不不会导致表C
或D
进行检查点。注意
ndb_table_no_logging
对NDB
表模式文件的创建没有影响;要抑制这些,请ndb_table_temporary
改用。ndb_table_temporary
属性 值 系统变量 ndb_table_temporary 范围 Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 当设置为
ON
或时1
,此变量导致NDB
不将表写入磁盘:这意味着未创建表架构文件,并且未记录表。注意
设置此变量当前无效。这是一个已知的问题;参见错误#34036。
ndb_use_copying_alter_table
属性 值 系统变量 ndb_use_copying_alter_table 范围 Global, Session 动态 没有 SET_VAR
提示适用没有 NDB
在线ALTER TABLE
操作出现问题时强制使用表的复制。默认值为OFF
。ndb_use_exact_count
属性 值 系统变量 ndb_use_exact_count 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF NDB
在SELECT COUNT(*)
查询计划期间强制使用记录计数来加快这种类型的查询。默认值为OFF
,这允许整体上更快的查询。ndb_use_transactions
属性 值 命令行格式 --ndb-use-transactions[={OFF|ON}] 系统变量 ndb_use_transactions 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 ON 您可以
NDB
通过将此变量的值设置为OFF
(不推荐)来禁用事务支持。默认值为ON
。ndb_version
属性 值 系统变量 ndb_version 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 string 默认值 NDB
引擎版本,作为一个复合整数。ndb_version_string
属性 值 系统变量 ndb_version_string 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 string 默认值 NDB
引擎版本的格式。ndb-x.y.z
server_id_bits
属性 值 命令行格式 --server-id-bits=# 系统变量 server_id_bits 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 整数 默认值 32 最低值 7 最大值 32 此变量指示32位
server_id
内实际标识服务器的最低有效位的数量。表示服务器实际上是由少于32个比特识别使得能够对一些剩余位被用于其它目的,例如存储由使用内的NDB API的事件的API的应用程序生成的用户数据AnyValue
的的OperationOptions
结构(NDB簇使用AnyValue
来存储服务器ID)。当
server_id
出于检测复制循环等目的而从中提取有效服务器ID时,服务器将忽略其余位。当根据服务器ID决定是否应忽略事件时,该server_id_bits
变量用于掩盖server_id
IO和SQL线程中任何不相关的位。可以使用mysqlbinlog从二进制日志中读取此数据,前提是该数据使用自己的
server_id_bits
变量设置为32(默认值)运行。如果该值
server_id
大于或等于2的幂server_id_bits
;否则,mysqld拒绝启动。NDB群集仅支持此系统变量。标准MySQL 8.0服务器不支持它。
slave_allow_batching
属性 值 命令行格式 --slave-allow-batching[={OFF|ON}] 系统变量 slave_allow_batching 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 是否在NDB群集复制从属服务器上启用了批处理更新。
设置此变量仅在将复制与
NDB
存储引擎一起使用时有效。在MySQL Server 8.0中,它存在但不执行任何操作。有关更多信息,请参见“启动NDB群集复制(单个复制通道)”。transaction_allow_batching
属性 值 系统变量 transaction_allow_batching 范围 Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 设置为
1
或时ON
,此变量启用同一事务内的语句批处理。要使用此变量,autocommit
必须首先将其设置为0
或来禁用它OFF
。否则,设置transaction_allow_batching
无效。将此变量与仅执行写操作的事务一起使用是安全的,因为启用它会导致从“ before ”映像中进行读取。您应确保
COMMIT
在发出之前落实所有未决的事务(如果需要,使用显式)SELECT
。重要
transaction_allow_batching
只要给定语句的效果取决于同一事务中前一个语句的结果,就不应使用。当前仅NDB群集支持此变量。
下表中的系统变量都与ndbinfo
信息数据库有关。
ndbinfo_database
属性 值 系统变量 ndbinfo_database 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 string 默认值 ndbinfo 显示用于
NDB
信息数据库的名称;默认值为ndbinfo
。这是一个只读变量,其值在编译时确定。您可以通过使用启动服务器来进行设置,该服务器设置为此变量显示的值,但实际上并不更改用于NDB信息数据库的名称。--ndbinfo-database=name
ndbinfo_max_bytes
属性 值 命令行格式 --ndbinfo-max-bytes=# 系统变量 ndbinfo_max_bytes 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 0 仅用于测试和调试。
ndbinfo_max_rows
属性 值 命令行格式 --ndbinfo-max-rows=# 系统变量 ndbinfo_max_rows 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 整数 默认值 10 仅用于测试和调试。
ndbinfo_offline
属性 值 系统变量 ndbinfo_offline 范围 Global 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 将
ndbinfo
数据库置于脱机模式,在该模式下,即使表和视图实际上不存在,也可以在其中存在但定义不同的情况下打开它们NDB
。此类表(或视图)不返回任何行。ndbinfo_show_hidden
属性 值 命令行格式 --ndbinfo-show-hidden[={OFF|ON}] 系统变量 ndbinfo_show_hidden 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 布尔型 默认值 OFF 无论是否
ndbinfo
数据库的底层内部表显示在mysql
客户端。默认值为OFF
。ndbinfo_table_prefix
属性 值 命令行格式 --ndbinfo-table-prefix=name 系统变量 ndbinfo_table_prefix 范围 Global, Session 动态 是 SET_VAR
提示适用没有 类型 string 默认值 ndb$ 命名ndbinfo数据库的基表时使用的前缀(通常隐藏,除非通过设置暴露
ndbinfo_show_hidden
)。这是一个只读变量,其默认值为ndb$
。您可以使用该--ndbinfo-table-prefix
选项启动服务器,但这仅设置变量,而不会更改用于命名隐藏基表的实际前缀;而是使用该选项启动服务器。前缀本身是在编译时确定的。ndbinfo_version
属性 值 系统变量 ndbinfo_version 范围 Global 动态 没有 SET_VAR
提示适用没有 类型 string 默认值 显示
ndbinfo
正在使用的引擎的版本;只读。
NDB群集状态变量
本节提供有关与NDB Cluster和NDB
存储引擎有关的MySQL服务器状态变量的详细信息。有关不是特定于NDB Cluster的状态变量,以及有关使用状态变量的一般信息,请参见“服务器状态变量”。
Handler_discover
MySQL服务器可以询问
NDBCLUSTER
存储引擎是否知道具有给定名称的表。这称为发现。Handler_discover
指示使用此机制发现表的次数。Ndb_api_bytes_sent_count_session
在此客户端会话中发送到数据节点的数据量(以字节为单位)。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_bytes_sent_count_slave
该从站发送到数据节点的数据量(以字节为单位)。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_bytes_sent_count
此MySQL服务器(SQL节点)发送到数据节点的数据量(以字节为单位)。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_bytes_received_count_session
在此客户端会话中从数据节点接收到的数据量(以字节为单位)。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_bytes_received_count_slave
该从站从数据节点接收的数据量(以字节为单位)。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_bytes_received_count
此MySQL服务器(SQL节点)从数据节点接收的数据量(以字节为单位)。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_event_data_count_injector
NDB binlog注入程序线程接收到的行更改事件数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_event_data_count
此MySQL服务器(SQL节点)接收到的行更改事件数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_event_nondata_count_injector
NDB二进制日志注入器线程接收到的除行更改事件以外的事件数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_event_nondata_count
该MySQL服务器(SQL节点)接收到的除行更改事件以外的事件数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_event_bytes_count_injector
NDB Binlog注入程序线程接收到的事件的字节数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_event_bytes_count
此MySQL服务器(SQL节点)接收到的事件的字节数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_pk_op_count_session
基于或使用主键的此客户端会话中的操作数。这包括对Blob表的操作,隐式解锁操作,自动递增操作以及用户可见的主键操作。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_pk_op_count_slave
该从站基于或使用主键的操作数。这包括对Blob表的操作,隐式解锁操作,自动递增操作以及用户可见的主键操作。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_pk_op_count
此MySQL服务器(SQL节点)基于或使用主键的操作数。这包括对Blob表的操作,隐式解锁操作,自动递增操作以及用户可见的主键操作。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_pruned_scan_count_session
此客户端会话中已修剪到单个分区的扫描数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_pruned_scan_count_slave
此从属服务器已修剪到单个分区的扫描次数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_pruned_scan_count
该MySQL服务器(SQL节点)已修剪到单个分区的扫描次数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_range_scan_count_session
在此客户端会话中已启动的范围扫描数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_range_scan_count_slave
此从站已启动的范围扫描的数量。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_range_scan_count
此MySQL服务器(SQL节点)已启动的范围扫描数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_read_row_count_session
在此客户端会话中已读取的总行数。这包括该客户端会话中进行的任何主键,唯一键或扫描操作读取的所有行。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_read_row_count_slave
该从站已读取的总行数。这包括任何主键,唯一键或此从属设备执行的扫描操作读取的所有行。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_read_row_count
该MySQL服务器(SQL节点)已读取的总行数。这包括由任何主键,唯一键或此MySQL服务器(SQL节点)进行的扫描操作读取的所有行。
您应该意识到,对于查询读取的行,此值可能并不完全准确,原因是在这种情况下,MySQL服务器实际上读取伪行的形式并将所有片段的每个片段的行求和在表中导出所有行的估计计数。使用此估算值而不是表中的实际行数。
SELECT
COUNT(*)
[table fragment ID]:[number of rows in fragment]
Ndb_api_read_row_count
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_scan_batch_count_session
在此客户端会话中收到的行的批处理数。1个批次定义为来自单个片段的1组扫描结果。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_scan_batch_count_slave
该从站接收的行的批处理数。1个批次定义为来自单个片段的1组扫描结果。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_scan_batch_count
此MySQL服务器(SQL节点)接收到的行的批数。1个批次定义为来自单个片段的1组扫描结果。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_table_scan_count_session
在此客户端会话中已经开始的表扫描的数量,包括内部表的扫描。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_table_scan_count_slave
此从属服务器已启动的表扫描次数,包括内部表的扫描次数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_table_scan_count
此MySQL服务器(SQL节点)已启动的表扫描数,包括内部表的扫描数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_abort_count_session
在此客户端会话中中止的事务数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_abort_count_slave
此从属服务器中止的事务数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_abort_count
此MySQL服务器(SQL节点)中止的事务数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ 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的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_close_count_slave
该从站关闭的事务数。这个值可能比的总和
Ndb_api_trans_commit_count_slave
和Ndb_api_trans_abort_count_slave
,因为有些交易可能已被回滚。尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_close_count
该MySQL服务器(SQL节点)关闭的事务数。这个值可能比的总和
Ndb_api_trans_commit_count
和Ndb_api_trans_abort_count
,因为有些交易可能已被回滚。尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_commit_count_session
在此客户端会话中提交的事务数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_commit_count_slave
该从服务器提交的事务数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_commit_count
此MySQL服务器(SQL节点)提交的事务数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_local_read_row_count_session
在此客户端会话中已读取的总行数。这包括该客户端会话中进行的任何主键,唯一键或扫描操作读取的所有行。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_local_read_row_count_slave
该从站已读取的总行数。这包括任何主键,唯一键或此从属设备执行的扫描操作读取的所有行。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_local_read_row_count
该MySQL服务器(SQL节点)已读取的总行数。这包括由任何主键,唯一键或此MySQL服务器(SQL节点)进行的扫描操作读取的所有行。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_start_count_session
在此客户端会话中启动的事务数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_start_count_slave
此从站启动的事务数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_trans_start_count
此MySQL服务器(SQL节点)启动的事务数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_uk_op_count_session
此客户端会话中基于或使用唯一键的操作数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_uk_op_count_slave
该从站基于或使用唯一键的操作数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_uk_op_count
此MySQL服务器(SQL节点)基于或使用唯一键的操作数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_exec_complete_count_session
在等待操作执行完成时,线程在此客户机会话中被阻止的次数。这包括所有
execute()
调用以及客户端看不到的Blob和自动增量操作的隐式执行。尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_exec_complete_count_slave
在等待操作完成执行时,此从属线程阻塞线程的次数。这包括所有
execute()
调用以及客户端看不到的Blob和自动增量操作的隐式执行。尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_exec_complete_count
在等待操作执行完成时,此MySQL服务器(SQL节点)阻塞线程的次数。这包括所有
execute()
调用以及客户端看不到的Blob和自动增量操作的隐式执行。尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_meta_request_count_session
线程在此客户端会话中被阻塞的次数,等待基于元数据的信号,例如DDL请求,新纪元和事务记录占用所期望的次数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_meta_request_count_slave
该从属服务器在等待基于元数据的信号(例如DDL请求,新纪元和事务记录占用)所等待的线程阻塞的次数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_meta_request_count
此MySQL服务器(SQL节点)在等待基于元数据的信号(例如DDL请求,新纪元和事务记录占用)所等待的线程被阻塞的次数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_nanos_count_session
在此客户机会话中等待来自数据节点的任何类型的信号所花费的总时间(以纳秒为单位)。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_nanos_count_slave
该从站等待数据节点发出的任何类型信号所花费的总时间(以纳秒为单位)。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_nanos_count
此MySQL服务器(SQL节点)等待来自数据节点的任何类型的信号所花费的总时间(以纳秒为单位)。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_scan_result_count_session
在等待基于扫描的信号(例如,等待来自扫描的更多结果或等待关闭扫描)时,线程在此客户端会话中被阻塞的次数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但它仅与当前会话有关,并且不受此mysqld的任何其他客户端的影响。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_scan_result_count_slave
在等待基于扫描的信号(例如,等待来自扫描的更多结果或等待关闭扫描)时,此从属线程阻塞线程的次数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。如果此MySQL服务器不充当复制从属服务器,或不使用NDB表,则该值始终为0。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_api_wait_scan_result_count
在等待基于扫描的信号(例如,等待来自扫描的更多结果或等待关闭扫描)时,该MySQL服务器(SQL节点)阻塞线程的次数。
尽管可以使用
SHOW GLOBAL STATUS
或读取此变量SHOW SESSION STATUS
,但实际上它是全局范围的。有关更多信息,请参见“ NDB API统计信息计数器和变量”。
Ndb_cluster_node_id
如果服务器充当NDB群集节点,则此变量的值是群集中的节点ID。
如果服务器不属于NDB群集,则此变量的值为0。
Ndb_config_from_host
如果服务器是NDB群集的一部分,则此变量的值是从其获取配置数据的群集管理服务器的主机名或IP地址。
如果服务器不属于NDB群集,则此变量的值为空字符串。
Ndb_config_from_port
如果服务器是NDB群集的一部分,则此变量的值是服务器连接到群集管理服务器所通过的端口号,服务器从该端口获取配置数据。
如果服务器不属于NDB群集,则此变量的值为0。
Ndb_conflict_fn_max_del_win
显示
NDB$MAX_DELETE_WIN()
自从上次启动此mysqld以来由于使用NDB群集复制冲突解决而在当前SQL节点上拒绝行的次数。有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_fn_max
在NDB群集复制冲突解决中使用时,该变量显示自上次启动此mysqld以来,由于“最大时间戳获胜”冲突解决而导致行未应用于当前SQL节点的次数。
有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_fn_old
在NDB群集复制冲突解决方案中使用时,该变量显示自上次重启以来,由于给定mysqld的“ same timestamp wins ”冲突解决结果而未应用行的次数。
有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_fn_epoch
在NDB群集复制冲突解决方案中使用时,此变量显示自上次重新启动以来,
NDB$EPOCH()
在给定的mysqld上使用冲突解决方案发现冲突的行数。有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_fn_epoch2
显示
NDB$EPOCH2()
自上次重新启动以来,在指定为主数据库的主数据库上使用时,在NDB群集复制冲突解决方案中发现冲突的行数。有关更多信息,请参见 NDB $ EPOCH2()。
Ndb_conflict_fn_epoch_trans
在NDB群集复制冲突解决方案中使用时,此变量显示自上次重新启动以来,
NDB$EPOCH_TRANS()
在给定的mysqld上使用冲突解决方案发现冲突的行数。有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_fn_epoch2_trans
在NDB群集复制冲突解决方案中使用时,此变量显示自上次重新启动以来,
NDB$EPOCH_TRANS2()
在给定的mysqld上使用冲突解决方案发现冲突的行数。有关更多信息,请参见 NDB $ EPOCH2_TRANS()。
Ndb_conflict_last_conflict_epoch
在此从站上检测到冲突的最新纪元。您可以将该值与
Ndb_slave_max_replicated_epoch
;如果Ndb_slave_max_replicated_epoch
大于Ndb_conflict_last_conflict_epoch
,则尚未检测到冲突。有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_reflected_op_discard_count
使用NDB群集复制冲突解决方案时,这是由于在执行过程中遇到错误而未应用到辅助数据库的反射操作数。
有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_reflected_op_prepare_count
在NDB群集复制中使用冲突解决方案时,此状态变量包含已定义(即准备在辅助数据库上执行)的反射操作数。
请参见“ NDB群集复制冲突解决”。
Ndb_conflict_refresh_op_count
在NDB群集复制中使用冲突解决方案时,这提供了准备在辅助数据库上执行的刷新操作的数量。
有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_last_stable_epoch
事务冲突功能发现存在冲突的行数
有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_trans_row_conflict_count
此状态变量用在NDB群集复制冲突解决中,显示自上次重启以来,事务冲突函数在给定mysqld上发现直接冲突的行数。
当前,NDB Cluster支持的唯一事务冲突检测功能是NDB $ EPOCH_TRANS(),因此此状态变量实际上与相同
Ndb_conflict_fn_epoch_trans
。有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_trans_row_reject_count
在NDB群集复制冲突解决中使用的此状态变量显示由于事务性冲突检测功能确定为冲突而导致重新对齐的总行数。这不仅包括
Ndb_conflict_trans_row_conflict_count
,还包括冲突事务中或依赖冲突事务的任何行。有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_trans_reject_count
此状态变量用于NDB群集复制冲突解决中,显示通过事务冲突检测功能发现冲突的事务数。
有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_trans_detect_iter_count
在NDB群集复制冲突解决中使用,它显示提交纪元事务所需的内部迭代数。应该(略)大于或等于
Ndb_conflict_trans_conflict_commit_count
。有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_conflict_trans_conflict_commit_count
在NDB群集复制冲突解决中使用,它显示需要事务冲突处理后提交的纪元事务的数量。
有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_epoch_delete_delete_count
当使用删除/删除冲突检测时,这是检测到的删除-删除冲突的数量,在其中应用了删除操作,但指示的行不存在。
Ndb_execute_count
提供
NDB
操作进行的到内核的往返次数。Ndb_last_commit_epoch_server
最近提交的纪元
NDB
。Ndb_last_commit_epoch_session
此
NDB
客户最近提交的纪元。Ndb_metadata_blacklist_size
自上次重新启动以来,NDB binlog线程已无法在此SQL节点上同步的元数据对象数。
如果某个对象被列入黑名单,则在用户手动纠正不匹配之前,不会再次考虑该对象进行自动同步。这可以通过尝试使用该表的声明,如来完成,或将触发表发现任何其他声明。
SHOW CREATE TABLE table
SELECT * FROM table
在NDB 8.0.18中添加。
Ndb_metadata_detected_count
自上次启动该服务器以来,NDB元数据更改检测线程发现有关MySQL数据字典的更改的次数。
在NDB 8.0.16中添加。
Ndb_metadata_synced_count
自上次重新启动以来,在此SQL节点上已同步的NDB元数据对象的数量。
在NDB 8.0.18中添加。
Ndb_number_of_data_nodes
如果服务器是NDB群集的一部分,则此变量的值为群集中数据节点的数量。
如果服务器不属于NDB群集,则此变量的值为0。
Ndb_pushed_queries_defined
向下推到NDB内核以在数据节点上进行分布式处理的联接总数。
注意
EXPLAIN
可使用下推的经过测试的联接有助于此数字。Ndb_pushed_queries_dropped
向下推送到NDB内核但在那里无法处理的联接数。
Ndb_pushed_queries_executed
成功向下推
NDB
并在此处执行的连接数。Ndb_pushed_reads
通过按下的连接从NDB内核返回到mysqld的行数。
注意
EXPLAIN
在可以向下推的联接上执行NDB
不会增加该数字。Ndb_pruned_scan_count
此变量保存
NDBCLUSTER
自NDB群集上次启动以来NDBCLUSTER
能够使用分区修剪的执行扫描次数。将此变量与变量一起使用
Ndb_scan_count
可以在架构设计中最大程度地提高服务器将扫描修剪到单个表分区的能力,从而仅涉及单个数据节点。Ndb_scan_count
此变量保存
NDBCLUSTER
自上次启动NDB群集以来执行的扫描总数。Ndb_slave_max_replicated_epoch
此奴隶上最近提交的纪元。您可以将该值与
Ndb_conflict_last_conflict_epoch
;如果Ndb_slave_max_replicated_epoch
两者中的较大者,则尚未检测到冲突。有关更多信息,请参见“ NDB群集复制冲突解决”。
Ndb_system_name
如果此MySQL服务器已连接到NDB群集,则此只读变量将显示群集系统名称。否则,该值为空字符串。
Ndb_trans_hint_count_session
在当前会话中已经开始的使用提示的事务处理数。比较
Ndb_api_trans_start_count_session
以获得能够使用提示的所有NDB事务的比例。在NDB 8.0.17中添加。