21.3.3.9 NDB 群集的 MySQL 服务器选项和变量
本节提供有关特定于 NDB Cluster 的 MySQL 服务器选项,服务器和状态变量的信息。有关使用它们的一般信息,以及有关 NDB Cluster 以外的其他选项和变量,请参见第 5.1 节“ MySQL 服务器”。
有关群集配置文件(通常名为config.ini
)中使用的 NDB 群集配置参数,请参阅第 21.3 节“ NDB 群集的配置”。
21.3.3.9.1 NDB 群集的 MySQL 服务器选项
本节提供有关 NDB 群集的mysqld服务器选项的说明。有关不是 NDB 群集特定的mysqld选项的信息,以及有关mysqld使用选项的一般信息,请参见第 5.1.6 节“服务器命令选项”。
有关与其他 NDB 群集进程(ndbd,ndb_mgmd和ndb_mgm)一起使用的命令行选项的信息,请参见第 21.4.32 节“ NDB 群集程序的公用选项-NDB 群集程序的公用选项”。有关NDBUtil(例如ndb_desc,ndb_size.pl和ndb_show_tables)使用的命令行选项的信息,请参见第 21.4 节“ NDB 群集程序”。
Property | Value |
---|---|
Command-Line Format | --ndbcluster[=value] |
Disabled by | skip-ndbcluster |
Type | Boolean |
Default Value | OFF |
NDBCLUSTER存储引擎是使用 NDB 群集所必需的。如果mysqld二进制文件包含对NDBCLUSTER存储引擎的支持,则默认情况下将禁用该引擎。使用--ndbcluster选项启用它。使用--skip-ndbcluster
明确禁用引擎。
不需要或不希望将此选项与--initialize一起使用。从 NDB 7.5.4 开始,如果还使用--initialize
,则--ndbcluster
将被忽略(并且NDB
存储引擎未启用)。 (缺陷#81689,错误#23518923)
Property | Value |
---|---|
Command-Line Format | --ndb-allow-copying-alter-table[={OFF|ON}] |
Introduced | 5.7.10-ndb-7.5.0 |
System Variable | ndb_allow_copying_alter_table |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | ON |
让ALTER TABLE和其他 DDL 语句对NDB
table 使用复制操作。设置为OFF
可以防止这种情况的发生;这样做可以提高关键应用程序的性能。
Property | Value |
---|---|
Command-Line Format | --ndb-batch-size |
System Variable | ndb_batch_size |
Scope | Global |
Dynamic | No |
Type | Integer |
Default Value | 32768 |
Minimum Value | 0 |
Maximum Value | 31536000 |
这将设置用于 NDB 事务批处理的字节大小。
Property | Value |
---|---|
Command-Line Format | --ndb-cluster-connection-pool |
System Variable | ndb_cluster_connection_pool |
System Variable | ndb_cluster_connection_pool |
Scope | Global |
Scope | Global |
Dynamic | No |
Dynamic | No |
Type | Integer |
Default Value | 1 |
Minimum Value | 1 |
Maximum Value | 63 |
通过将此选项设置为大于 1(默认值)的值,mysqld进程可以使用与群集的多个连接,从而有效地模仿了多个 SQL 节点。每个连接在群集配置(config.ini
)文件中都需要其自己的[api]
或[mysqld]
部分,并计入群集支持的最大 API 连接数。
假设您有 2 台群集主机,每台群集主机运行一个 SQL 节点,该节点的mysqld进程以--ndb-cluster-connection-pool=4
开始;这意味着群集必须有 8 个 API 插槽可用于这些连接(而不是 2 个)。所有这些连接都是在 SQL 节点连接到群集时构建的,并以循环方式分配给线程。
仅当在具有多个 CPU,多个内核或两者都有的主机上运行mysqld时,此选项才有用。为了获得最佳结果,该值应小于主机上可用内核的总数。将其设置为大于此值可能会严重降低性能。
Important
因为每个使用连接池的 SQL 节点都占用多个 API 节点插槽(每个插槽在集群中都有自己的节点 ID),所以在启动使用连接池的任何mysqld进程时,您必须不要*将节点 ID 用作集群连接字符串的一部分。
使用--ndb-cluster-connection-pool
选项时,在连接字符串中设置节点 ID 会在 SQL 节点尝试连接到群集时导致节点 ID 分配错误。
Property | Value |
---|---|
Command-Line Format | --ndb-cluster-connection-pool-nodeids |
Introduced | 5.7.10-ndb-7.5.0 |
系统变量(≥5.7.10-ndb-7.5.0) | ndb_cluster_connection_pool_nodeids |
范围(≥5.7.10-ndb-7.5.0) | Global |
动态(≥5.7.10-ndb-7.5.0) | No |
Type | Set |
Default Value | `` |
指定以逗号分隔的节点 ID 列 table,用于连接到 SQL 节点使用的群集。此列 table 中的节点数必须与为--ndb-cluster-connection-pool选项设置的值相同。
--ndb-cluster-connection-pool-nodeids
已添加到 NDB 7.5.0 中。
Property | Value |
---|---|
Command-Line Format | --ndb-blob-read-batch-bytes |
System Variable | ndb_blob_read_batch_bytes |
Scope | Global, Session |
Dynamic | Yes |
Type | Integer |
Default Value | 65536 |
Minimum Value | 0 |
Maximum Value | 4294967295 |
此选项可用于设置 NDB Cluster 应用程序中批处理BLOB数据读取的大小(以字节为单位)。当该批处理大小超出当前事务中要读取的BLOB数据量时,将立即执行所有未决的BLOB读取操作。
此选项的最大值为 4294967295;默认值为 65536.将其设置为 0 会禁用BLOB读取批处理。
Note
在 NDB API 应用程序中,您可以使用setMaxPendingBlobReadBytes()和getMaxPendingBlobReadBytes()方法控制BLOB写批处理。
Property | Value |
---|---|
Command-Line Format | --ndb-blob-write-batch-bytes |
System Variable | ndb_blob_write_batch_bytes |
Scope | Global, Session |
Dynamic | Yes |
Type | Integer |
Default Value | 65536 |
Minimum Value | 0 |
Maximum Value | 4294967295 |
此选项可用于设置 NDB Cluster 应用程序中批处理BLOB数据写入的大小(以字节为单位)。当此批处理大小超出当前事务中要写入的BLOB数据量时,将立即执行所有未决的BLOB写入操作。
此选项的最大值为 4294967295;默认值为 65536.将其设置为 0 会禁用BLOB写批处理。
Note
在 NDB API 应用程序中,您可以使用setMaxPendingBlobWriteBytes()和getMaxPendingBlobWriteBytes()方法控制BLOB写批处理。
Property | Value |
---|---|
Command-Line Format | --ndb-connectstring |
Type | String |
使用NDBCLUSTER存储引擎时,此选项指定分发群集配置数据的 Management 服务器。有关语法,请参见第 21.3.3.3 节“ NDB 群集连接字符串”。
Property | Value |
---|---|
Command-Line Format | --ndb-default-column-format={FIXED|DYNAMIC} |
Introduced | 5.7.11-ndb-7.5.1 |
System Variable | ndb_default_column_format |
Scope | Global |
Dynamic | Yes |
Type | Enumeration |
默认值(≥5.7.16-ndb-7.5.4) | FIXED |
默认值(≥5.7.11-ndb-7.5.1,≤5.7.13-ndb-7.5.3) | DYNAMIC |
Valid Values | FIXED |
DYNAMIC |
在 NDB 7.5.1 和更高版本中,为新 table 设置默认的COLUMN_FORMAT
和ROW_FORMAT
(请参见第 13.1.18 节“ CREATE TABLE 语句”)。
在 NDB 7.5.1 中,此选项的默认值为DYNAMIC
;在 NDB 7.5.4 中,默认值已更改为FIXED
,以保持与较早版本系列的向后兼容性(错误#24487363)。
Property | Value |
---|---|
Command-Line Format | --ndb-deferred-constraints |
System Variable | ndb_deferred_constraints |
Scope | Global, Session |
Dynamic | Yes |
Type | Integer |
Default Value | 0 |
Minimum Value | 0 |
Maximum Value | 1 |
控制是否将对唯一索引的约束检查推迟到提交时间(支持这种检查的时间)之前。 0
是默认值。
NDB 群集或 NDB 群集复制的操作通常不需要此选项,主要用于测试。
Property | Value |
---|---|
Command-Line Format | --ndb-distribution={KEYHASH|LINHASH} |
System Variable | ndb_distribution |
Scope | Global |
Dynamic | Yes |
Type | Enumeration |
Default Value | KEYHASH |
Valid Values | LINHASH |
KEYHASH |
控制NDB个 table 的默认分发方法。可以设置为KEYHASH
(键哈希)或LINHASH
(线性哈希)。 KEYHASH
是默认值。
Property | Value |
---|---|
Command-Line Format | --ndb-log-apply-status[={OFF|ON}] |
System Variable | ndb_log_apply_status |
Scope | Global |
Dynamic | No |
Type | Boolean |
Default Value | OFF |
使副本mysqld使用其自己的服务器 ID(而不是源的服务器 ID)将从其直接来源接收到的所有更新记录到其自己的二进制日志中的mysql.ndb_apply_status
table 中。在循环或链式复制设置中,这允许此类更新传播到配置为当前mysqld副本的任何 MySQL 服务器的mysql.ndb_apply_status
table。
在链复制设置中,使用此选项可使下游(副本)群集了解其相对于所有上游贡献者(源)的位置。
在循环复制设置中,此选项导致对ndb_apply_status
table 的更改以完成整个电路,最终传播回原始 NDB 群集。这还允许充当源的聚类查看其更改(历元)何时已应用于圆中的其他聚类。
除非使用--ndbcluster选项启动 MySQL 服务器,否则该选项无效。
Property | Value |
---|---|
Command-Line Format | --ndb-log-empty-epochs[={OFF|ON}] |
System Variable | ndb_log_empty_epochs |
Scope | Global |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
导致即使没有启用log_slave_updates,也没有将任何更 Rewrite 入ndb_apply_status
和ndb_binlog_index
table 的时期。
默认情况下,此选项是禁用的。禁用--ndb-log-empty-epochs
会导致没有更改的纪元事务不会写入二进制日志,尽管即使对于ndb_binlog_index
中的空纪元也仍会写一行。
由于--ndb-log-empty-epochs=1
导致ndb_binlog_index
table 的大小独立于二进制日志的大小而增加,因此即使用户希望群集在大部分时间处于空闲状态,用户也应准备好 Management 该 table 的增长。
Property | Value |
---|---|
Command-Line Format | --ndb-log-empty-update[={OFF|ON}] |
System Variable | ndb_log_empty_update |
Scope | Global |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
启用log_slave_updates时,导致不产生任何更改的更新被写入ndb_apply_status
和ndb_binlog_index
table。
默认情况下,此选项为禁用(OFF
)。禁用--ndb-log-empty-update
会导致没有更改的更新不会写入二进制日志。
Property | Value |
---|---|
Command-Line Format | --ndb-log-exclusive-reads[={OFF|ON}] |
System Variable | ndb_log_exclusive_reads |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | 0 |
使用此选项启动服务器会导致使用排他锁记录主键读取,从而允许 NDB 群集复制冲突检测和基于读取冲突的解决。您还可以在运行时通过将ndb_log_exclusive_reads系统变量的值分别设置为 1 或 0 来启用和禁用这些锁。默认值为 0(禁用锁定)。
有关更多信息,请参见读取冲突检测和解决。
Property | Value |
---|---|
Command-Line Format | --ndb-log-fail-terminate |
Introduced | 5.7.29-ndb-7.6.14 |
System Variable | ndb_log_fail_terminate |
Scope | Global |
Dynamic | No |
Type | Boolean |
Default Value | FALSE |
如果指定了此选项,并且不可能完整记录所有找到的行事件,则mysqld进程终止。
Property | Value |
---|---|
Command-Line Format | --ndb-log-orig[={OFF|ON}] |
System Variable | ndb_log_orig |
Scope | Global |
Dynamic | No |
Type | Boolean |
Default Value | OFF |
将原始服务器 ID 和纪元记录在ndb_binlog_index
table 中。
Note
这样一来,给定的纪元就可以在ndb_binlog_index
中包含多行,每个原始纪元都有一个行。
有关更多信息,请参见第 21.6.4 节“ NDB 群集复制架构和 table”。
Property | Value |
---|---|
Command-Line Format | --ndb-log-transaction-id[={OFF|ON}] |
System Variable | ndb_log_transaction_id |
Scope | Global |
Dynamic | No |
Type | Boolean |
Default Value | OFF |
使副本mysqld在二进制日志的每一行中写入 NDB 事务 ID。这种日志记录要求对二进制日志使用版本 2 事件格式。因此,必须禁用log_bin_use_v1_row_events系统变量才能使用此选项。
主线 MySQL Server 5.7 不支持此选项。需要使用NDB$EPOCH_TRANS()
功能启用 NDB 群集复制冲突检测和解决(请参阅NDB$EPOCH_TRANS())。
默认值为FALSE
。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
Property | Value |
---|---|
Command-Line Format | --ndb-log-update-minimal[={OFF|ON}] |
Introduced | 5.7.18-ndb-7.6.3 |
System Variable | ndb_log_update_minimal |
Scope | Global |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
通过仅在前映像中写入主键值,并仅在后映像中写入更改的列,以最小的方式记录日志更新。如果复制到NDB
以外的存储引擎,则可能会导致兼容性问题。
Property | Value |
---|---|
Command-Line Format | --ndb-mgmd-host=host_name[:port_num] |
Type | String |
Default Value | localhost:1186 |
可用于设置程序要连接到的单个 Management 服务器的主机和端口号。如果该程序在其连接信息中需要节点 ID 或对多个 Management 服务器的引用(或两者都引用),请改用--ndb-connectstring选项。
Property | Value |
---|---|
Command-Line Format | --ndb-nodeid=# |
Status Variable | Ndb_cluster_node_id |
Scope | Global |
Dynamic | No |
Type | Integer |
Minimum Value | 1 |
Maximum Value | 255 |
Maximum Value | 63 |
在 NDB 群集中设置此 MySQL 服务器的节点 ID。
--ndb-nodeid
选项将覆盖用--ndb-connectstring设置的任何节点 ID,而不管两个选项的使用 Sequences。
此外,如果使用--ndb-nodeid
,则必须在config.ini
的[mysqld]
或[api]
节中找到匹配的节点 ID,或者文件中必须有“打开” [mysqld]
或[api]
节(即,没有NodeId
的节)或Id
参数指定)。如果将节点 ID 指定为连接字符串的一部分,则也是如此。
无论如何确定节点 ID,它都将在SHOW STATUS的输出中显示为全局状态变量Ndb_cluster_node_id
的值,并在显示引擎 NDBCLUSTER 状态的输出connection
行中显示为cluster_node_id
。
有关 NDB Cluster SQL 节点的节点 ID 的更多信息,请参见第 21.3.3.7 节“在 NDB 群集中定义 SQL 和其他 API 节点”。
Property | Value |
---|---|
Command-Line Format | --ndb-optimization-delay=# |
System Variable | ndb_optimization_delay |
Scope | Global |
Dynamic | Yes |
Type | Integer |
Default Value | 10 |
Minimum Value | 0 |
Maximum Value | 100000 |
设置NDBtable 上的OPTIMIZE TABLE语句在行集合之间 await 的毫秒数。预设值为 10.
Property | Value |
---|---|
Command-Line Format | --ndb-transid-mysql-connection-map[=state] |
Type | Enumeration |
Default Value | ON |
Valid Values | ON |
OFF FORCE |
启用或禁用处理INFORMATION_SCHEMA
数据库中的ndb_transid_mysql_connection_maptable 的插件。取值ON
,OFF
或FORCE
之一。 ON
(默认)启用插件。 OFF
禁用插件,这使得ndb_transid_mysql_connection_map
无法访问。如果插件无法加载和启动,则FORCE
阻止 MySQL 服务器启动。
您可以通过检查SHOW PLUGINS的输出来查看ndb_transid_mysql_connection_maptable 插件是否正在运行。
Property | Value |
---|---|
Command-Line Format | --ndb-wait-connected=# |
System Variable | ndb_wait_connected |
Scope | Global |
Dynamic | No |
Type | Integer |
Default Value | 30 |
Minimum Value | 0 |
Maximum Value | 31536000 |
此选项设置 MySQL 服务器在接受 MySQLClient 端连接之前 await 与 NDB 群集 Management 和数据节点构建连接的时间。时间以秒为单位指定。默认值为30
。
Property | Value |
---|---|
Command-Line Format | --ndb-wait-setup=# |
System Variable | ndb_wait_setup |
Scope | Global |
Dynamic | No |
Type | Integer |
Default Value | 30 |
Default Value | 30 |
Default Value | 15 |
Default Value | 15 |
Minimum Value | 0 |
Maximum Value | 31536000 |
该变量显示 MySQL 服务器 awaitNDB存储引擎完成设置的时间,然后超时并将NDB视为不可用。时间以秒为单位指定。默认值为30
。
Property | Value |
---|---|
Command-Line Format | --skip-ndbcluster |
禁用NDBCLUSTER存储引擎。这是使用NDBCLUSTER存储引擎支持构建的二进制文件的默认设置;仅当显式指定--ndbcluster选项时,服务器才会为此存储引擎分配内存和其他资源。有关示例,请参见第 21.3.1 节“ NDB 群集的快速测试设置”。
21.3.3.9.2 NDB 群集系统变量
本节提供有关特定于 NDB Cluster 和NDB存储引擎的 MySQL 服务器系统变量的详细信息。有关不是特定于 NDB 群集的系统变量,请参见第 5.1.7 节“服务器系统变量”。有关使用系统变量的一般信息,请参见第 5.1.8 节“使用系统变量”。
Property | Value |
---|---|
Command-Line Format | --ndb-autoincrement-prefetch-sz=# |
System Variable | ndb_autoincrement_prefetch_sz |
Scope | Global, Session |
Dynamic | Yes |
Type | Integer |
Default Value | 1 |
Minimum Value | 1 |
Maximum Value | 65536 |
确定自动递增列中的间隔的概率。将其设置为1
可将其最小化。将其设置为较高的值以进行优化可加快插入速度,但会降低在一批插入物中使用连续自动递增编号的可能性。
该变量仅影响语句之间获取的AUTO_INCREMENT
ID 的数量;在给定的语句中,一次至少获得 32 个 ID。
Important
此变量不会影响使用插入...选择执行的插入。
Property | Value |
---|---|
Command-Line Format | --ndb-cache-check-time=# |
Deprecated | 5.7.20 |
System Variable | ndb_cache_check_time |
Scope | Global |
Dynamic | Yes |
Type | Integer |
Default Value | 0 |
MySQL 查询缓存检查 NDB Cluster SQL 节点之间经过的毫秒数。将此设置为 0(默认值和最小值)意味着查询缓存将检查每个查询的有效性。
此变量的建议最大值为 1000,这 table 示每秒执行一次检查。较大的值 table 示执行检查,并且由于在不同 SQL 节点上进行更新的频率较低而可能使检查无效。通常不希望将其设置为大于 2000 的值。
Note
从 MySQL 5.7.20 开始,查询缓存已弃用,并在 MySQL 8.0 中删除。弃用包括ndb_cache_check_time。
Property | Value |
---|---|
Command-Line Format | --ndb-clear-apply-status[={OFF|ON}] |
System Variable | ndb_clear_apply_status |
Scope | Global |
Dynamic | Yes |
Type | Boolean |
Default Value | ON |
默认情况下,执行RESET SLAVE会导致 NDB 群集副本从其ndb_apply_status
table 中清除所有行。您可以通过设置ndb_clear_apply_status=OFF
禁用此功能。
Property | Value |
---|---|
Command-Line Format | --ndb-data-node-neighbour=# |
Introduced | 5.7.12-ndb-7.5.2 |
System Variable | ndb_data_node_neighbour |
Scope | Global |
Dynamic | Yes |
Type | Integer |
Default Value | 0 |
Minimum Value | 0 |
Maximum Value | 255 |
设置“最近”数据节点的 ID,即,选择首选的 nonlocal 数据节点来执行事务,而不是与 SQL 或 API 节点在同一主机上运行的节点。这用于确保访问完全复制的 table 时,我们在此数据节点上对其进行访问,以确保在可能的情况下始终使用 table 的本地副本。这也可以用于提供 Transaction 提示。
如果节点的物理距离比同一个主机上的其他节点更近,因此可以提高数据访问时间。
有关更多信息,请参见第 13.1.18.9 节“设置 NDB_TABLE 选项”。
在 NDB 7.5.2 中添加。
Note
提供了等效的方法set_data_node_neighbour()以便在 NDB API 应用程序中使用。
Property | Value |
---|---|
Command-Line Format | --ndb-default-column-format={FIXED|DYNAMIC} |
Introduced | 5.7.11-ndb-7.5.1 |
System Variable | ndb_default_column_format |
Scope | Global |
Dynamic | Yes |
Type | Enumeration |
默认值(≥5.7.16-ndb-7.5.4) | FIXED |
默认值(≥5.7.11-ndb-7.5.1,≤5.7.13-ndb-7.5.3) | DYNAMIC |
Valid Values | FIXED |
DYNAMIC |
在 NDB 7.5.1 和更高版本中,为新 table 设置默认的COLUMN_FORMAT
和ROW_FORMAT
(请参见第 13.1.18 节“ CREATE TABLE 语句”)。
在 NDB 7.5.1 中,此变量的默认值为DYNAMIC
;在 NDB 7.5.4 中,默认值已更改为FIXED
,以保持与较早版本系列的向后兼容性(错误#24487363)。
Property | Value |
---|---|
Command-Line Format | --ndb-deferred-constraints=# |
System Variable | ndb_deferred_constraints |
Scope | Global, Session |
Dynamic | Yes |
Type | Integer |
Default Value | 0 |
Minimum Value | 0 |
Maximum Value | 1 |
控制是否在支持约束检查的情况下推迟约束检查。 0
是默认值。
NDB 群集或 NDB 群集复制的操作通常不需要此变量,并且主要用于测试。
Property | Value |
---|---|
Command-Line Format | --ndb-distribution={KEYHASH|LINHASH} |
System Variable | ndb_distribution |
Scope | Global |
Dynamic | Yes |
Type | Enumeration |
Default Value | KEYHASH |
Valid Values | LINHASH |
KEYHASH |
控制NDB个 table 的默认分发方法。可以设置为KEYHASH
(键哈希)或LINHASH
(线性哈希)。 KEYHASH
是默认值。
Property | Value |
---|---|
Command-Line Format | --ndb-eventbuffer-free-percent=# |
System Variable | ndb_eventbuffer_free_percent |
Scope | Global |
Dynamic | Yes |
Type | Integer |
Default Value | 20 |
Minimum Value | 1 |
Maximum Value | 99 |
设置分配给事件缓冲区的最大内存(ndb_eventbuffer_max_alloc)的百分比,该内存在达到最大值后,在再次开始缓冲之前应该在事件缓冲区中可用。
Property | Value |
---|---|
Command-Line Format | --ndb-eventbuffer-max-alloc=# |
System Variable | ndb_eventbuffer_max_alloc |
Scope | Global |
Dynamic | Yes |
Type | Integer |
Default Value | 0 |
Minimum Value | 0 |
Maximum Value | 4294967295 |
设置 NDB API 可以分配用于缓冲事件的最大内存量(以字节为单位)。 0table 示不强加任何限制,并且是默认值。
Property | Value |
---|---|
Command-Line Format | ndb_extra_logging=# |
System Variable | ndb_extra_logging |
Scope | Global |
Dynamic | Yes |
Type | Integer |
Default Value | 1 |
使用此变量可以将特定于NDB存储引擎的信息记录在 MySQL 错误日志中。
当此变量设置为 0 时,唯一写入到 MySQL 错误日志的NDB
特定信息与事务处理有关。如果将其设置为大于 0 但小于 10 的值,则还将记录NDB
table 架构和连接事件,以及是否正在使用冲突解决方法以及其他NDB
错误和信息。如果该值设置为 10 或更大,则有关NDB
内部的信息(例如,群集节点之间的数据分发进度)也将写入 MySQL 错误日志。预设值为 1.
Property | Value |
---|---|
Command-Line Format | --ndb-force-send[={OFF|ON}] |
System Variable | ndb_force_send |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | ON |
强制立即将缓冲区发送到NDB,而无需 await 其他线程。默认为ON
。
Property | Value |
---|---|
Command-Line Format | --ndb-fully-replicated[={OFF|ON}] |
Introduced | 5.7.12-ndb-7-5-2 |
System Variable | ndb_fully_replicated |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
确定是否完全复制新的NDB
table。可以在CREATE TABLE或ALTER TABLE语句中使用COMMENT="NDB_TABLE=FULLY_REPLICATED=..."
来覆盖单个 table 的此设置;有关语法和其他信息,请参见第 13.1.18.9 节“设置 NDB_TABLE 选项”。
在 NDB 7.5.2 中添加。
Property | Value |
---|---|
Command-Line Format | --ndb-index-stat-enable[={OFF|ON}] |
System Variable | ndb_index_stat_enable |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | ON |
在查询优化中使用NDB索引统计信息。默认值为ON
。
Property | Value |
---|---|
Command-Line Format | --ndb-index-stat-option=value |
System Variable | ndb_index_stat_option |
Scope | Global, Session |
Dynamic | Yes |
Type | String |
Default Value | loop_checkon=1000ms,loop_idle=1000ms,loop_busy=100ms, update_batch=1,read_batch=4,idle_batch=32,check_batch=32, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M, cache_lowpct=90 |
此变量用于为 NDB 索引统计信息生成提供调整选项。该列 table 由选项名称和值的逗号分隔名称/值对组成,并且该列 table 不得包含任何空格字符。
设置ndb_index_stat_option
时未使用的选项不会更改为其默认值。例如,您可以设置ndb_index_stat_option = 'loop_idle=1000ms,cache_limit=32M'
。
可以选择在时间值后加上h
(小时),m
(分钟)或s
(秒)作为后缀。可以使用ms
指定毫秒值;不能使用h
,m
或s
指定毫秒值。)可以在K
,M
或G
后缀整数值。
下 table 中显示了可以使用此变量设置的选项的名称。该 table 还提供了有关选项,其默认值以及(如果适用)其最小值和最大值的简要说明。
table21.206 ndb_index_stat_option 选项和值
Name | Description | Default/Units | Minimum/Maximum |
---|---|---|---|
loop_enable | 1000 ms | 0/4G | |
loop_idle | 空闲时睡觉的时间 | 1000 ms | 0/4G |
loop_busy | await 更多工作的时候睡觉 | 100 ms | 0/4G |
update_batch | 1 | 0/4G | |
read_batch | 4 | 1/4G | |
idle_batch | 32 | 1/4G | |
check_batch | 8 | 1/4G | |
check_delay | 多久检查一次新统计数据 | 10 m | 1/4G |
delete_batch | 8 | 0/4G | |
clean_delay | 1 m | 0/4G | |
error_batch | 4 | 1/4G | |
error_delay | 1 m | 1/4G | |
evict_batch | 8 | 1/4G | |
evict_delay | 从读取时间开始清理 LRU 缓存 | 1 m | 0/4G |
cache_limit | mysqld用于缓存索引统计信息的最大内存量(以字节为单位);超过此数量时清理缓存。 | 32 M | 0/4G |
cache_lowpct | 90 | 0/100 | |
zero_total | 将此设置为 1 会将ndb_index_stat_status 中的所有累加计数器重置为 0.完成此操作后,此选项值也将重置为 0. | 0 | 0/1 |
Property | Value |
---|---|
System Variable | ndb_join_pushdown |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | ON |
此变量控制是否将NDBtable 上的联接下推到 NDB 内核(数据节点)。以前,联接是通过 SQL 节点使用NDB的多次访问来处理的;但是,启用ndb_join_pushdown时,可推送联接将全部发送到数据节点,在其中可将其分布在数据节点之间并在数据的多个副本上并行执行,并将合并后的单个结果返回给mysqld 。这可以大大减少处理这种联接所需的 SQL 节点与数据节点之间的往返次数。
默认情况下,启用ndb_join_pushdown。
NDB 下推式连接的条件. 为了使连接可推送,它必须满足以下条件:
- 只能比较列,并且要连接的所有列必须“完全”使用相同的数据类型。
这意味着诸如t1.a = t2.a + constant
之类的 table 达式不能被下推,并且(例如)INT列和BIGINT列上的联接也不能被下推。
这意味着使用FOR UPDATE
的联接不能被下推。
外部联接的子 table 只能使用eq_ref推送。
如果强制连接的根是eq_ref或const,则只能附加由eq_ref连接的子 table。 (用ref连接的 table 很可能成为另一个推入连接的根。)
如果查询优化器为候选子 table 确定Using join cache
,则该 table 不能作为子 table 推入。但是,它可能是另一组推入 table 的根。
- 当前无法下推由
[LINEAR] HASH
,LIST
或RANGE
显式分区的联接引用 table。
您可以通过使用EXPLAIN检查是否可以将给定的联接下推;当可以按下连接时,您可以在输出的Extra
列中看到对pushed join
的引用,如以下示例所示:
mysql> EXPLAIN
-> SELECT e.first_name, e.last_name, t.title, d.dept_name
-> FROM employees e
-> JOIN dept_emp de ON e.emp_no=de.emp_no
-> JOIN departments d ON d.dept_no=de.dept_no
-> JOIN titles t ON e.emp_no=t.emp_no\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: d
type: ALL
possible_keys: PRIMARY
key: NULL
key_len: NULL
ref: NULL
rows: 9
Extra: Parent of 4 pushed join@1
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: de
type: ref
possible_keys: PRIMARY,emp_no,dept_no
key: dept_no
key_len: 4
ref: employees.d.dept_no
rows: 5305
Extra: Child of 'd' in pushed join@1
*************************** 3. row ***************************
id: 1
select_type: SIMPLE
table: e
type: eq_ref
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: employees.de.emp_no
rows: 1
Extra: Child of 'de' in pushed join@1
*************************** 4. row ***************************
id: 1
select_type: SIMPLE
table: t
type: ref
possible_keys: PRIMARY,emp_no
key: emp_no
key_len: 4
ref: employees.de.emp_no
rows: 19
Extra: Child of 'e' in pushed join@1
4 rows in set (0.00 sec)
Note
如果内部联接的子 table 通过ref联接,并且*并且结果是按排序的索引排序或分组的,则该索引无法提供排序的行,这会强制写入排序的临时文件。
提供了有关推入连接性能的两个其他信息来源:
-
状态变量Ndb_pushed_queries_defined,Ndb_pushed_queries_dropped,Ndb_pushed_queries_executed和Ndb_pushed_reads。
-
ndbinfo.counterstable 中属于
DBSPJ
内核块的计数器。有关这些计数器的信息,请参见第 21.5.14.10 节,“ ndbinfo 计数器 table”。另请参见《 NDB Cluster API 开发人员指南》中的DBSPJ 块。
Property | Value |
---|---|
Command-Line Format | --ndb-log-apply-status[={OFF|ON}] |
System Variable | ndb_log_apply_status |
Scope | Global |
Dynamic | No |
Type | Boolean |
Default Value | OFF |
一个只读变量,显示服务器是否使用--ndb-log-apply-status选项启动。
Property | Value |
---|---|
Command-Line Format | --ndb-log-bin[={OFF|ON}] |
System Variable | ndb_log_bin |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | ON |
使对NDB
table 的更新被写入二进制日志。如果尚未使用log_bin为服务器启用二进制日志记录,则设置此变量无效。 ndb_log_bin
默认为 1(ON);通常,在生产环境中永远不需要更改此值。
Property | Value |
---|---|
Command-Line Format | --ndb-log-binlog-index[={OFF|ON}] |
System Variable | ndb_log_binlog_index |
Scope | Global |
Dynamic | Yes |
Type | Boolean |
Default Value | ON |
使历元到二进制日志中位置的 Map 插入到ndb_binlog_index
table 中。如果尚未使用log_bin为服务器启用二进制日志记录,则设置此变量无效。 (此外,不得禁用ndb_log_bin。)ndb_log_binlog_index
默认为1
(ON
);通常,在生产环境中永远不需要更改此值。
Property | Value |
---|---|
Command-Line Format | --ndb-log-empty-epochs[={OFF|ON}] |
System Variable | ndb_log_empty_epochs |
Scope | Global |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
当此变量设置为 0 时,没有变化的纪元事务不会写入二进制日志,尽管即使对于ndb_binlog_index
中的空纪元也将写一行。
Property | Value |
---|---|
Command-Line Format | --ndb-log-empty-update[={OFF|ON}] |
System Variable | ndb_log_empty_update |
Scope | Global |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
当此变量设置为ON
(1
)时,即使启用了log_slave_updates,更新事务也不会更改而被写入二进制日志。
Property | Value |
---|---|
Command-Line Format | --ndb-log-exclusive-reads[={OFF|ON}] |
System Variable | ndb_log_exclusive_reads |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | 0 |
此变量确定是否使用排他锁记录主键读取,从而允许 NDB 群集复制冲突检测和基于读取冲突的解决。要启用这些锁定,请将ndb_log_exclusive_reads
的值设置为 1.默认值为 0.
有关更多信息,请参见读取冲突检测和解决。
Property | Value |
---|---|
Command-Line Format | --ndb-log-orig[={OFF|ON}] |
System Variable | ndb_log_orig |
Scope | Global |
Dynamic | No |
Type | Boolean |
Default Value | OFF |
显示是否在ndb_binlog_index
table 中记录了原始服务器 ID 和时期。使用--ndb-log-orig服务器选项进行设置。
Property | Value |
---|---|
System Variable | ndb_log_transaction_id |
Scope | Global |
Dynamic | No |
Type | Boolean |
Default Value | OFF |
此只读布尔系统变量显示副本mysqld是否在二进制日志中写入 NDB 事务 ID(需要将“主动-主动” NDB 群集复制与NDB$EPOCH_TRANS()
冲突检测一起使用)。要更改设置,请使用--ndb-log-transaction-id选项。
主线 MySQL Server 5.7 不支持ndb_log_transaction_id。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
Property | Value |
---|---|
Command-Line Format | --ndb-optimized-node-selection=# |
System Variable | ndb_optimized_node_selection |
Scope | Global |
Dynamic | No |
Type | Integer |
Default Value | 3 |
Minimum Value | 0 |
Maximum Value | 3 |
优化节点选择有两种形式,在此进行描述:
-
SQL 节点使用混合来确定事务协调器。也就是说,选择距 SQL 节点“最近”的数据节点作为事务处理协调器。为此,与 SQL 节点具有共享内存连接的数据节点被认为与 SQL 节点“最近”;接下来的最近的(按减小的 Sequences 排列)是:到
localhost
的 TCP 连接,然后是来自localhost
以外的主机的 TCP 连接。 -
SQL 线程使用分发感知来选择数据节点。即,将包含由给定事务的第一条语句访问的群集分区的数据节点用作整个事务的事务协调器。 (仅在事务的第一条语句访问不超过一个集群分区时,此方法才有效.)
此选项采用整数值0
,1
,2
或3
之一。 3
是默认值。这些值影响节点选择,如下所示:
-
0
:未优化节点选择。在 SQL 线程进入下一个数据节点之前,每个数据节点均被用作事务协调器 8 次。-
1
:接近 SQL 节点用于确定事务协调器。 -
2
:分发意识用于选择事务协调器。但是,如果事务的第一条语句访问多个群集分区,则该节点设置为0
时,SQL 节点将恢复为循环行为。 -
3
:如果可以使用分发意识来确定事务协调器,则使用它;否则,使用接近度来选择 Transaction 协调器。 (这是默认行为.)
-
接近程度确定如下:
-
从为Group参数设置的值开始(默认为 55)。
-
对于与其他 API 节点共享同一主机的 API 节点,将该值减 1.假设
Group
的默认值,与 API 节点在同一主机上的数据节点的有效值为 54,而远程数据节点的有效值为 55. -
(* NDB 7.5.2 及更高版本:*)设置ndb_data_node_neighbour会将有效
Group
值进一步减小 50,从而将该节点视为最近的节点。仅当所有数据节点都位于托管 API 节点以外的其他主机上并且需要将其中一个专用于 API 节点时,才需要这样做。在正常情况下,前面描述的默认调整就足够了。
不建议频繁进行ndb_data_node_neighbour
的更改,因为这会更改群集连接的状态,因此可能会中断来自每个线程的新事务的选择算法,直到稳定为止。
Property | Value |
---|---|
Command-Line Format | --ndb-read-backup[={OFF|ON}] |
Introduced | 5.7.12-ndb-7.5.2 |
System Variable | ndb_read_backup |
Scope | Global |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
为随后创建的任何NDB
table 启用从任何副本中读取;这样做以相对较小的写入成本大大提高了 table 读取性能。
要为单个 table 启用或禁用从任何副本的读取,可以在CREATE TABLE或ALTER TABLE语句中为 table 设置NDB_TABLE
选项READ_BACKUP
;有关更多信息,请参见第 13.1.18.9 节“设置 NDB_TABLE 选项”。
在 NDB 7.5.2 中添加。
Property | Value |
---|---|
Command-Line Format | --ndb-recv-thread-activation-threshold=# |
System Variable | ndb_recv_thread_activation_threshold |
Scope | Global |
Dynamic | Yes |
Type | Integer |
Default Value | 8 |
Minimum Value | 0 (MIN_ACTIVATION_THRESHOLD) |
Maximum Value | 16 (MAX_ACTIVATION_THRESHOLD) |
当达到并发活动线程的数量时,接收线程将接管集群连接的轮询。
此变量的作用域是全局的。也可以在启动时进行设置。
Property | Value |
---|---|
Command-Line Format | --ndb-recv-thread-cpu-mask=mask |
System Variable | ndb_recv_thread_cpu_mask |
Scope | Global |
Dynamic | Yes |
Type | Bitmap |
Default Value | [empty] |
用于将接收器线程锁定到特定 CPU 的 CPU 掩码。指定为十六进制位掩码。例如,0x33
table 示每个接收器线程使用一个 CPU。默认为空字符串。将ndb_recv_thread_cpu_mask
设置为该值将删除以前设置的所有接收器线程锁。
此变量的作用域是全局的。也可以在启动时进行设置。
Property | Value |
---|---|
Command-Line Format | --ndb-report-thresh-binlog-epoch-slip=# |
System Variable | ndb_report_thresh_binlog_epoch_slip |
Scope | Global |
Dynamic | Yes |
Type | Integer |
默认值(≥5.7.16-ndb-7.5.4) | 10 |
默认值(≤5.7.13-ndb-7.5.3) | 3 |
Minimum Value | 0 |
Maximum Value | 256 |
在 NDB 7.5.4 和更高版本中,这 table 示完全缓冲在事件缓冲区中,但尚未被 binlog 注入程序线程消耗的纪元数的阈值。当超过此滑动程度(滞后)时,将报告事件缓冲区状态消息,并提供BUFFERED_EPOCHS_OVER_THRESHOLD
作为原因(请参见第 21.5.2.3 节“群集日志中的事件缓冲区报告”)。当从数据节点接收到一个纪元并将其完全缓冲在事件缓冲区中时,滑动会增加;当二进制日志注入器线程消耗了一个纪元时,它减少了,减少了。空历元被缓冲和排队,因此仅当使用 NDB API 中的Ndb::setEventBufferQueueEmptyEpoch()方法启用空历元时,才将其包括在此计算中。
在 NDB 7.5.4 之前,此可变参数的值用作报告二进制日志状态之前要落后的时期数的阈值。在这些以前的版本中,值3
(默认值)table 示如果已从存储节点接收到哪个纪元和已将二进制文件应用于哪个纪元之间的差是 3 或更大,则将状态消息发送到群集日志。
Property | Value |
---|---|
Command-Line Format | --ndb-report-thresh-binlog-mem-usage=# |
System Variable | ndb_report_thresh_binlog_mem_usage |
Scope | Global |
Dynamic | Yes |
Type | Integer |
Default Value | 10 |
Minimum Value | 0 |
Maximum Value | 10 |
这是报告二进制日志状态之前剩余可用内存百分比的阈值。例如,值10
(缺省值)table 示如果用于从数据节点接收二进制日志数据的可用内存量低于 10%,则会向群集日志发送状态消息。
Property | Value |
---|---|
Introduced | 5.7.23-ndb-7.6.8 |
System Variable | ndb_row_checksum |
Scope | Global, Session |
Dynamic | Yes |
Type | Integer |
Default Value | 1 |
Minimum Value | 0 |
Maximum Value | 1 |
传统上,NDB
已创建带有行校验和的 table,这些 table 会检查硬件问题,但会降低性能。将ndb_row_checksum
设置为 0 意味着行校验和不用于新 table 或更改后的 table,这对所有类型的查询的性能都有重要影响。默认情况下,此变量设置为 1,以提供向后兼容的行为。
Property | Value |
---|---|
Command-Line Format | --ndb-show-foreign-key-mock-tables[={OFF|ON}] |
System Variable | ndb_show_foreign_key_mock_tables |
Scope | Global |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
显示NDB
用于支持foreign_key_checks=0的模拟 table。启用此功能后,在创建和删除 table 时会显示额外的警告。该 table 的真实(内部)名称可以在显示创建 table的输出中看到。
Property | Value |
---|---|
Command-Line Format | --ndb-slave-conflict-role=value |
System Variable | ndb_slave_conflict_role |
Scope | Global |
Dynamic | Yes |
Type | Enumeration |
Default Value | NONE |
Valid Values | 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 ='无'。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
Property | Value |
---|---|
System Variable | ndb_table_no_logging |
Scope | Session |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
当此变量设置为ON
或1
时,它将导致NDB个 table 不被检查指向磁盘。更具体地说,此设置适用于在启用ndb_table_no_logging时使用ENGINE NDB
创建或更改的 table,即使在以后更改ndb_table_no_logging的情况下,该设置也 continue 适用于 table 的生命周期。假设A
,B
,C
和D
是我们创建的 table(也许还可以更改),并且我们还更改了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 B ENGINE NDB;
SET @@ndb_table_no_logging = 0;
CREATE TABLE D ... ENGINE NDB;
ALTER TABLE C ENGINE NDB;
SET @@ndb_table_no_logging = 1;
在上一个事件序列之后,未对 tableA
和B
进行检查点; A
是使用ENGINE NDB
创建的,并且 B 更改为使用NDB
,同时启用了ndb_table_no_logging
。但是,记录了 tableC
和D
。 C
已更改为使用NDB,而D
是使用ENGINE NDB
创建的,都禁用了ndb_table_no_logging。将ndb_table_no_logging设置回1
或ON
不会导致tableC
或D
被检查。
Note
ndb_table_no_logging对创建NDBtable 模式文件没有影响;要抑制这些,请改用ndb_table_temporary。
Property | Value |
---|---|
System Variable | ndb_table_temporary |
Scope | Session |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
当设置为ON
或1
时,此变量导致不将NDB个 table 写入磁盘:这意味着未创建任何 table 模式文件,并且未记录这些 table。
Note
设置此变量当前无效。这是一个已知的问题;参见错误#34036.
Property | Value |
---|---|
System Variable | ndb_use_copying_alter_table |
Scope | Global, Session |
Dynamic | No |
在线ALTER TABLE操作出现问题时,强制NDB使用 table 的复制。默认值为OFF
。
Property | Value |
---|---|
System Variable | ndb_use_exact_count |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
强制NDB在SELECT COUNT(*)
查询计划期间使用记录数,以加快此类查询的速度。默认值为OFF
,它允许整体上更快的查询。
Property | Value |
---|---|
Command-Line Format | --ndb-use-transactions[={OFF|ON}] |
System Variable | ndb_use_transactions |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | ON |
您可以通过将此变量的值设置为OFF
(不推荐)来禁用NDB事务支持。默认值为ON
。
Property | Value |
---|---|
System Variable | ndb_version |
Scope | Global |
Dynamic | No |
Type | String |
Default Value | `` |
NDB
引擎版本,以整数形式 table 示。
Property | Value |
---|---|
System Variable | ndb_version_string |
Scope | Global |
Dynamic | No |
Type | String |
Default Value | `` |
NDB
引擎版本为ndb-x.y.z
格式。
Property | Value |
---|---|
Command-Line Format | --server-id-bits=# |
System Variable | server_id_bits |
Scope | Global |
Dynamic | No |
Type | Integer |
Default Value | 32 |
Minimum Value | 7 |
Maximum Value | 32 |
此变量指示 32 位server_id内实际标识服务器的最低有效位的数量。指出服务器实际上是由少于 32 位标识的,这使得剩余的一些位可以用于其他目的,例如将由使用 NDB API 的事件 API 的应用程序生成的用户数据存储在OperationOptions结构的AnyValue
中( NDB 群集使用AnyValue
来存储服务器 ID。
当出于检测复制循环之类的目的从server_id提取有效服务器 ID 时,服务器将忽略其余位。当根据服务器 ID 确定是否应忽略事件时,使用server_id_bits变量来屏蔽 IO 和 SQL 线程中server_id的所有无关位。
可以使用mysqlbinlog从二进制日志中读取此数据,前提是该数据使用自己的server_id_bits变量设置为 32(默认值)运行。
如果server_id的值大于或等于server_id_bits的幂;否则,mysqld拒绝启动。
NDB 群集仅支持此系统变量。标准 MySQL 5.7 服务器不支持它。
Property | Value |
---|---|
Command-Line Format | --slave-allow-batching[={OFF|ON}] |
System Variable | slave_allow_batching |
Scope | Global |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
是否在 NDB 群集副本上启用了批处理更新。
仅当将复制与NDB
存储引擎一起使用时,设置此变量才有效。在 MySQL Server 5.7 中,它存在但不执行任何操作。有关更多信息,请参见第 21.6.6 节“启动 NDB 群集复制(单个复制通道)”。
Property | Value |
---|---|
System Variable | transaction_allow_batching |
Scope | Session |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
当设置为1
或ON
时,此变量启用同一事务内的语句批处理。要使用此变量,必须先将autocommit设置为0
或OFF
来将其禁用;否则,设置transaction_allow_batching无效。
将此变量与仅执行写操作的事务一起使用是安全的,因为启用该变量可能导致从“之前”映像进行读取。您应确保在发出SELECT之前提交了所有未决的事务(如果需要,使用显式的COMMIT)。
Important
只要给定语句的效果取决于同一事务中前一个语句的结果,就不应使用transaction_allow_batching。
当前仅 NDB 群集支持此变量。
下 table 中的系统变量都与ndbinfo信息数据库有关。
Property | Value |
---|---|
System Variable | ndbinfo_database |
Scope | Global |
Dynamic | No |
Type | String |
Default Value | ndbinfo |
显示用于NDB
信息数据库的名称;默认值为ndbinfo
。这是一个只读变量,其值在编译时确定。您可以通过使用--ndbinfo-database=name
启动服务器来进行设置,--ndbinfo-database=name
设置为此变量显示的值,但实际上并不更改用于 NDB 信息数据库的名称。
Property | Value |
---|---|
Command-Line Format | --ndbinfo-max-bytes=# |
System Variable | ndbinfo_max_bytes |
Scope | Global, Session |
Dynamic | Yes |
Type | Integer |
Default Value | 0 |
仅用于测试和调试。
Property | Value |
---|---|
Command-Line Format | --ndbinfo-max-rows=# |
System Variable | ndbinfo_max_rows |
Scope | Global, Session |
Dynamic | Yes |
Type | Integer |
Default Value | 10 |
仅用于测试和调试。
Property | Value |
---|---|
System Variable | ndbinfo_offline |
Scope | Global |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
将ndbinfo数据库置于脱机模式,在该模式下,即使 table 和视图实际上不存在,或者在NDB中具有不同的定义时也可以打开它们。此类 table(或视图)不返回任何行。
Property | Value |
---|---|
Command-Line Format | --ndbinfo-show-hidden[={OFF|ON}] |
System Variable | ndbinfo_show_hidden |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
ndbinfo数据库的内部内部 table 是否显示在mysql
Client 端中。默认值为OFF
。
Property | Value |
---|---|
Command-Line Format | --ndbinfo-table-prefix=name |
System Variable | ndbinfo_table_prefix |
Scope | Global, Session |
Dynamic | Yes |
Type | String |
Default Value | ndb$ |
命名 ndbinfo 数据库的基 table 时使用的前缀(通常是隐藏的,除非通过设置ndbinfo_show_hidden公开)。这是一个只读变量,其默认值为ndb$
。您可以使用--ndbinfo-table-prefix
选项启动服务器,但这仅设置变量,而不会更改用于命名隐藏基 table 的实际前缀。前缀本身是在编译时确定的。
Property | Value |
---|---|
System Variable | ndbinfo_version |
Scope | Global |
Dynamic | No |
Type | String |
Default Value | `` |
显示正在使用的ndbinfo引擎的版本;只读。
21.3.3.9.3 NDB 群集状态变量
本节提供有关与 NDB Cluster 和NDB存储引擎相关的 MySQL 服务器状态变量的详细信息。有关不是特定于 NDB Cluster 的状态变量,以及有关使用状态变量的一般信息,请参见第 5.1.9 节“服务器状态变量”。
MySQL 服务器可以询问NDBCLUSTER存储引擎是否知道具有给定名称的 table。这称为发现。 Handler_discovertable 示使用此机制发现 table 的次数。
在此 Client 端会话中发送到数据节点的数据量(以字节为单位)。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本发送到数据节点的数据量(以字节为单位)。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)发送到数据节点的数据量(以字节为单位)。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在此 Client 端会话中从数据节点接收到的数据量(以字节为单位)。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本从数据节点接收的数据量(以字节为单位)。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
该 MySQL 服务器(SQL 节点)从数据节点接收的数据量(以字节为单位)。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
NDB Binlog 注入程序线程接收到的行更改事件数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)接收到的行更改事件数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
NDB 二进制日志注入器线程接收到的除行更改事件以外的事件数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
该 MySQL 服务器(SQL 节点)接收到的除行更改事件以外的事件数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
NDB Binlog 注入程序线程接收到的事件的字节数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)接收到的事件的字节数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
基于或使用主键的此 Client 端会话中的操作数。这包括对 Blobtable 的操作,隐式解锁操作,自动递增操作以及用户可见的主键操作。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本基于或使用主键的操作数。这包括对 Blobtable 的操作,隐式解锁操作,自动递增操作以及用户可见的主键操作。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)基于或使用主键的操作数。这包括对 Blobtable 的操作,隐式解锁操作,自动递增操作以及用户可见的主键操作。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 Client 端会话中已修剪到单个分区的扫描数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本已修剪到单个分区的扫描次数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
该 MySQL 服务器(SQL 节点)已修剪到单个分区的扫描次数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在此 Client 端会话中已启动的范围扫描数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本已启动的范围扫描数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)已启动的范围扫描数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在此 Client 端会话中已读取的总行数。这包括该 Client 端会话中进行的任何主键,唯一键或扫描操作读取的所有行。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本已读取的总行数。这包括任何主键,唯一键或此副本进行的扫描操作读取的所有行。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
该 MySQL 服务器(SQL 节点)已读取的总行数。这包括由任何主键,唯一键或此 MySQL 服务器(SQL 节点)进行的扫描操作读取的所有行。
您应该意识到,对于SELECT COUNT(*)查询读取的行,该值可能并不完全准确,这是因为在这种情况下,MySQL 服务器实际上以[table fragment ID]:[number of rows in fragment]
的形式读取伪行并对每个片段的行求和 table 中所有片段的数据,以得出所有行的估计计数。 Ndb_api_read_row_count
使用此估计值,而不是 table 中的实际行数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在此 Client 端会话中收到的行的批处理数。 1 个批次定义为来自单个片段的 1 组扫描结果。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本接收的行的批次数。 1 个批次定义为来自单个片段的 1 组扫描结果。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)收到的行的批处理数。 1 个批次定义为来自单个片段的 1 组扫描结果。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在此 Client 端会话中已经开始的 table 扫描的数量,包括内部 table 的扫描。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本已启动的 table 扫描数,包括内部 table 的扫描数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)已启动的 table 扫描数,包括内部 table 的扫描数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在此 Client 端会话中中止的事务数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本中止的事务数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)中止的事务数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在此 Client 端会话中关闭的事务数。此值可能大于Ndb_api_trans_commit_count_session和Ndb_api_trans_abort_count_session的总和,因为某些事务可能已回滚。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本关闭的事务数。此值可能大于Ndb_api_trans_commit_count_slave和Ndb_api_trans_abort_count_slave的总和,因为某些事务可能已回滚。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
该 MySQL 服务器(SQL 节点)关闭的事务数。此值可能大于Ndb_api_trans_commit_count和Ndb_api_trans_abort_count的总和,因为某些事务可能已回滚。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在此 Client 端会话中提交的事务数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本提交的事务数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)提交的事务数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在此 Client 端会话中已读取的总行数。这包括该 Client 端会话中进行的任何主键,唯一键或扫描操作读取的所有行。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本已读取的总行数。这包括任何主键,唯一键或此副本进行的扫描操作读取的所有行。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
该 MySQL 服务器(SQL 节点)已读取的总行数。这包括由任何主键,唯一键或此 MySQL 服务器(SQL 节点)进行的扫描操作读取的所有行。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在此 Client 端会话中启动的事务数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本启动的事务数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)启动的事务数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 Client 端会话中基于或使用唯一键的操作数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本基于或使用唯一键的操作数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)基于或使用唯一键的操作数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在 await 操作执行完成时,线程在此 Client 机会话中被阻止的次数。这包括所有execute()调用以及 Client 端看不到的 Blob 和自动增量操作的隐式执行。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在 await 操作执行完成时,此副本阻止线程的次数。这包括所有execute()调用以及 Client 端看不到的 Blob 和自动增量操作的隐式执行。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在 await 操作执行完成时,此 MySQL 服务器(SQL 节点)阻塞线程的次数。这包括所有execute()调用以及 Client 端看不到的 Blob 和自动增量操作的隐式执行。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
线程在此 Client 端会话中被阻止 await 基于元数据的 signal 的次数,例如 DDL 请求,新纪元和占用事务记录的预期时间。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本阻塞线程 await 基于元数据的 signal 的次数,例如 DDL 请求,新纪元和占用事务记录的时间。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此 MySQL 服务器(SQL 节点)在 await 基于元数据的 signal(例如 DDL 请求,新纪元和事务记录占用)所 await 的线程被阻塞的次数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在此 Client 机会话中 await 来自数据节点的任何类型的 signal 所花费的总时间(以纳秒为单位)。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
此副本 await 来自数据节点的任何类型的 signal 所花费的总时间(以纳秒为单位)。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
该 MySQL 服务器(SQL 节点)await 来自数据节点的任何类型的 signal 所花费的总时间(以纳秒为单位)。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在 await 基于扫描的 signal(例如,await 来自扫描的更多结果或 await 扫描关闭)时,线程在此 Client 端会话中被阻塞的次数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但它仅与当前会话相关,并且不受此mysqld的任何其他 Client 端影响。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在 await 基于扫描的 signal 时,例如在 await 来自扫描的更多结果时,或者在 await 扫描关闭时,此副本阻止线程的次数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。如果此 MySQL 服务器不充当副本或不使用 NDBtable,则此值始终为 0.
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
在 await 基于扫描的 signal(例如,await 来自扫描的更多结果或 await 关闭扫描)时,该 MySQL 服务器(SQL 节点)阻塞线程的次数。
尽管可以使用显示 Global 状态或显示会话状态读取此变量,但实际上它是作用域中的全局变量。
有关更多信息,请参见第 21.5.13 节“ NDB API 统计信息计数器和变量”。
如果服务器充当 NDB 群集节点,则此变量的值是群集中的节点 ID。
如果服务器不属于 NDB 群集,则此变量的值为 0.
如果服务器是 NDB 群集的一部分,则此变量的值是从中获取其配置数据的群集 Management 服务器的主机名或 IP 地址。
如果服务器不属于 NDB 群集,则此变量的值为空字符串。
如果服务器是 NDB 群集的一部分,则此变量的值是服务器连接到群集 Management 服务器所通过的端口号,服务器从该端口获取配置数据。
如果服务器不属于 NDB 群集,则此变量的值为 0.
显示自上次启动此mysqld以来由于使用NDB$MAX_DELETE_WIN()
解决 NDB 群集复制冲突而在当前 SQL 节点上拒绝行的次数。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
在 NDB 群集复制冲突解决方案中使用时,此变量显示自上次启动此_以来,由于“最大时间戳获胜”冲突解决方案而未将行应用于当前 SQL 节点的次数。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
在 NDB 群集复制冲突解决方案中使用时,此变量显示自上次重新启动以来,由于给定mysqld上的“相同的时间戳赢得”冲突解决方案而未应用行的次数。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
在 NDB 群集复制冲突解决方案中使用时,此变量显示自上次重新启动以来,在给定的mysqld上使用NDB$EPOCH()
冲突解决方案发现冲突的行数。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
显示自上次重新启动以来在指定为主要资源的源上使用NDB$EPOCH2()
时,在 NDB 群集复制冲突解决方案中发现冲突的行数。
有关更多信息,请参见NDB$EPOCH2()。
在 NDB 群集复制冲突解决方案中使用时,此变量显示自上次重新启动以来,在给定的mysqld上使用NDB$EPOCH_TRANS()
冲突解决方案发现冲突的行数。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
在 NDB 群集复制冲突解决方案中使用时,此变量显示自上次重新启动以来,在给定的mysqld上使用NDB$EPOCH_TRANS2()
冲突解决方案发现冲突的行数。
有关更多信息,请参见NDB$EPOCH2_TRANS()。
在此副本上检测到冲突的最新纪元。您可以将此值与Ndb_slave_max_replicated_epoch进行比较;如果Ndb_slave_max_replicated_epoch
大于Ndb_conflict_last_conflict_epoch
,则尚未检测到冲突。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
使用 NDB 群集复制冲突解决方案时,这是由于在执行过程中遇到错误而未应用到辅助数据库的反射操作数。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
在 NDB 群集复制中使用冲突解决时,此状态变量包含已定义(即准备在辅助数据库上执行)的反射操作数。
See 第 21.6.11 节“ NDB 群集复制冲突解决”.
在 NDB 群集复制中使用冲突解决时,这将提供准备在辅助数据库上执行的刷新操作的数量。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
事务冲突功能发现存在冲突的行数
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
此状态变量用于 NDB 群集复制冲突解决中,显示自上次重新启动以来,事务冲突函数在给定的mysqld上发现直接冲突的行数。
当前,NDB Cluster 支持的唯一事务冲突检测功能是 NDB $ EPOCH_TRANS(),因此此状态变量实际上与Ndb_conflict_fn_epoch_trans相同。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
在 NDB 群集复制冲突解决方案中使用时,此状态变量显示由于事务冲突检测功能确定为冲突而导致重新对齐的总行数。这不仅包括Ndb_conflict_trans_row_conflict_count,还包括冲突事务中或依赖冲突事务的任何行。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
此状态变量在 NDB 群集复制冲突解决中使用,显示通过事务冲突检测功能发现冲突的事务数。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
在 NDB 群集复制冲突解决中使用,它显示提交纪元事务所需的内部迭代数。应该(略)大于或等于Ndb_conflict_trans_conflict_commit_count。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
在 NDB 群集复制冲突解决方案中使用时,它显示需要事务冲突处理后提交的纪元事务的数量。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
当使用删除/删除冲突检测时,这是检测到的删除-删除冲突的数量,在其中应用了删除操作,但指示的行不存在。
提供操作进行的到NDB内核的往返次数。
NDB
最近提交的纪元。
此NDB
Client 端最近提交的纪元。
如果服务器是 NDB 群集的一部分,则此变量的值为群集中数据节点的数量。
如果服务器不属于 NDB 群集,则此变量的值为 0.
向下推到 NDB 内核以在数据节点上进行分布式处理的联接总数。
Note
使用EXPLAIN进行测试且可以下推的联接有助于此数字。
向下推送到 NDB 内核但在那里无法处理的联接数。
成功将连接数降低到NDB并在那里执行。
通过按下的连接从 NDB 内核返回到mysqld的行数。
自从 NDB 群集上次启动NDBCLUSTER可以使用分区修剪的 NDB 群集以来,此变量保存了NDBCLUSTER执行的扫描次数。
将此变量与Ndb_scan_count一起使用可能有助于架构设计,以最大程度地提高服务器将扫描修剪到单个 table 分区的能力,从而仅涉及单个数据节点。
自上次启动 NDB 群集以来,此变量保存NDBCLUSTER执行的扫描总数。
此副本上最近提交的时期。您可以将此值与Ndb_conflict_last_conflict_epoch进行比较;如果Ndb_slave_max_replicated_epoch
是两者中的较大者,则尚未检测到冲突。
有关更多信息,请参见第 21.6.11 节“ NDB 群集复制冲突解决”。
如果此 MySQL 服务器已连接到 NDB 群集,则此只读变量将显示群集系统名称。否则,该值为空字符串。