MySQL 5.7 Reference Manual Including MySQL NDB Cluster 7.5 and NDB Cluster 7.6
This section provides information about MySQL server options, server and status variables that are specific to NDB Cluster. For general information on using these, and for other options and variables not specific to NDB Cluster, see Section 5.1, “The MySQL Server”.
For NDB Cluster configuration parameters used in the cluster
configuration file (usually named
config.ini
), see
Section 21.3, “Configuration of NDB Cluster”.
This section provides descriptions of mysqld server options relating to NDB Cluster. For information about mysqld options not specific to NDB Cluster, and for general information about the use of options with mysqld, see Section 5.1.6, “Server Command Options”.
For information about command-line options used with other NDB
Cluster processes (ndbd,
ndb_mgmd, and ndb_mgm),
see Section 21.4.32, “Options Common to NDB Cluster Programs — Options Common to NDB Cluster Programs”.
For information about command-line options used with
NDB
utility programs (such as
ndb_desc, ndb_size.pl,
and ndb_show_tables), see
Section 21.4, “NDB Cluster Programs”.
Table 21.207 Type and value information for ndbcluster
Property | Value |
---|---|
Name | ndbcluster |
Command Line | Yes |
System Variable | No |
Option File | Yes |
Scope | |
Dynamic | No |
Type: Default, Range | boolean: OFF (Version: 5.7) |
Notes | DESCRIPTION: Enable NDB Cluster (if this version of MySQL supports it)
Disabled by
|
The NDBCLUSTER
storage engine
is necessary for using NDB Cluster. If a
mysqld binary includes support for the
NDBCLUSTER
storage engine,
the engine is disabled by default. Use the
--ndbcluster
option to
enable it. Use --skip-ndbcluster
to
explicitly disable the engine.
It is not necessary or desirable to use this option
together with --initialize
.
Beginning with NDB 7.5.4, --ndbcluster
is
ignored (and the NDB
storage engine is
not enabled) if
--initialize
is also used. (Bug #81689,
Bug #23518923)
--ndb-allow-copying-alter-table=[ON|OFF]
Table 21.208 Type and value information for ndb-allow-copying-alter-table
Property | Value |
---|---|
Name | ndb-allow-copying-alter-table |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Both |
Dynamic | Yes |
Type: Default, Range | boolean: ON (Version: 5.7) |
Notes | DESCRIPTION: Set to OFF to keep ALTER TABLE from using copying operations on NDB tables |
Let ALTER TABLE
and other
DDL statements use copying operations on
NDB
tables. Set to
OFF
to keep this from happening; doing
so may improve performance of critical applications.
Table 21.209 Type and value information for ndb-batch-size
Property | Value |
---|---|
Name | ndb-batch-size |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | No |
Type: Default, Range | integer: 32768 / 0 - 31536000 (Version: 5.7) |
Notes | DESCRIPTION: Size (in bytes) to use for NDB transaction batches |
This sets the size in bytes that is used for NDB transaction batches.
--ndb-cluster-connection-pool=
#
Table 21.210 Type and value information for ndb-cluster-connection-pool
Property | Value |
---|---|
Name | ndb-cluster-connection-pool |
Command Line | Yes |
System Variable | Yes |
Status Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | No |
Type | |
Default, Range | 1 / 1 - 63 (Version: NDB 7.5-7.6) |
Notes | DESCRIPTION: Number of connections to the cluster used by MySQL |
By setting this option to a value greater than 1 (the
default), a mysqld process can use
multiple connections to the cluster, effectively mimicking
several SQL nodes. Each connection requires its own
[api]
or [mysqld]
section in the cluster configuration
(config.ini
) file, and counts against
the maximum number of API connections supported by the
cluster.
Suppose that you have 2 cluster host computers, each
running an SQL node whose mysqld
process was started with
--ndb-cluster-connection-pool=4
; this
means that the cluster must have 8 API slots available for
these connections (instead of 2). All of these connections
are set up when the SQL node connects to the cluster, and
are allocated to threads in a round-robin fashion.
This option is useful only when running mysqld on host machines having multiple CPUs, multiple cores, or both. For best results, the value should be smaller than the total number of cores available on the host machine. Setting it to a value greater than this is likely to degrade performance severely.
Because each SQL node using connection pooling occupies multiple API node slots—each slot having its own node ID in the cluster—you must not use a node ID as part of the cluster connection string when starting any mysqld process that employs connection pooling.
Setting a node ID in the connection string when using
the --ndb-cluster-connection-pool
option causes node ID allocation errors when the SQL
node attempts to connect to the cluster.
--ndb-cluster-connection-pool-nodeids=
list
Table 21.211 Type and value information for ndb-cluster-connection-pool-nodeids
Property | Value |
---|---|
Name | ndb-cluster-connection-pool-nodeids |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | No |
Type: Default, Range | set: / (Version: 5.7) |
Notes | DESCRIPTION: Comma-separated list of node IDs for connections to the cluster used by MySQL; the number of nodes in the list must be the same as the value set for --ndb-cluster-connection-pool |
Specifies a comma-separated list of node IDs for
connections to the cluster used by an SQL node. The number
of nodes in this list must be the same as the value set
for the
--ndb-cluster-connection-pool
option.
--ndb-cluster-connection-pool-nodeids
was
added in NDB 7.5.0.
--ndb-blob-read-batch-bytes=
bytes
Table 21.212 Type and value information for ndb-blob-read-batch-bytes
Property | Value |
---|---|
Name | ndb-blob-read-batch-bytes |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Both |
Dynamic | Yes |
Type: Default, Range | integer: 65536 / 0 - 4294967295 (Version: 5.7) |
Notes | DESCRIPTION: Specifies size in bytes that large BLOB reads should be batched into. 0 = no limit. |
This option can be used to set the size (in bytes) for
batching of BLOB
data reads
in NDB Cluster applications. When this batch size is
exceeded by the amount of
BLOB
data to be read within
the current transaction, any pending
BLOB
read operations are
immediately executed.
The maximum value for this option is 4294967295; the
default is 65536. Setting it to 0 has the effect of
disabling BLOB
read
batching.
In NDB API applications, you can control
BLOB
write batching with
the
setMaxPendingBlobReadBytes()
and
getMaxPendingBlobReadBytes()
methods.
--ndb-blob-write-batch-bytes=
bytes
Table 21.213 Type and value information for ndb-blob-write-batch-bytes
Property | Value |
---|---|
Name | ndb-blob-write-batch-bytes |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Both |
Dynamic | Yes |
Type: Default, Range | integer: 65536 / 0 - 4294967295 (Version: 5.7) |
Notes | DESCRIPTION: Specifies size in bytes that large BLOB writes should be batched into. 0 = no limit. |
This option can be used to set the size (in bytes) for
batching of BLOB
data
writes in NDB Cluster applications. When this batch size
is exceeded by the amount of
BLOB
data to be written
within the current transaction, any pending
BLOB
write operations are
immediately executed.
The maximum value for this option is 4294967295; the
default is 65536. Setting it to 0 has the effect of
disabling BLOB
write
batching.
In NDB API applications, you can control
BLOB
write batching with
the
setMaxPendingBlobWriteBytes()
and
getMaxPendingBlobWriteBytes()
methods.
--ndb-connectstring=
connection_string
Table 21.214 Type and value information for ndb-connectstring
Property | Value |
---|---|
Name | ndb-connectstring |
Command Line | Yes |
System Variable | No |
Option File | Yes |
Scope | |
Dynamic | No |
Type: Default, Range | string: (Version: 5.7) |
Notes | DESCRIPTION: Point to the management server that distributes the cluster configuration |
When using the NDBCLUSTER
storage engine, this option specifies the management
server that distributes cluster configuration data. See
Section 21.3.3.3, “NDB Cluster Connection Strings”, for
syntax.
--ndb-default-column-format=[FIXED|DYNAMIC]
Table 21.215 Type and value information for ndb-default-column-format
Property | Value |
---|---|
Name | ndb-default-column-format |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | Yes |
Type: Default, Range | enumeration: DYNAMIC / FIXED, DYNAMIC (Version: 7.5.1) |
Type: Default, Range | enumeration: FIXED / FIXED, DYNAMIC (Version: 7.5.4) |
Notes | DESCRIPTION: Use this value (FIXED or DYNAMIC) by default for COLUMN_FORMAT and ROW_FORMAT options when creating or adding columns to a table. |
In NDB 7.5.1 and later, sets the default
COLUMN_FORMAT
and
ROW_FORMAT
for new tables (see
Section 13.1.18, “CREATE TABLE Statement”).
In NDB 7.5.1, the default for this option was
DYNAMIC
; in NDB 7.5.4, the default was
changed to FIXED
to maintain backwards
compatibility with older release series (Bug #24487363).
--ndb-deferred-constraints=[0|1]
Table 21.216 Type and value information for ndb-deferred-constraints
Property | Value |
---|---|
Name | ndb-deferred-constraints |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Both |
Dynamic | Yes |
Type: Default, Range | integer: 0 / 0 - 1 (Version: 5.7) |
Notes | DESCRIPTION: Specifies that constraint checks on unique indexes (where these are supported) should be deferred until commit time. Not normally needed or used; for testing purposes only. |
Controls whether or not constraint checks on unique
indexes are deferred until commit time, where such checks
are supported. 0
is the default.
This option is not normally needed for operation of NDB Cluster or NDB Cluster Replication, and is intended primarily for use in testing.
--ndb-distribution=[KEYHASH|LINHASH]
Table 21.217 Type and value information for ndb-distribution
Property | Value |
---|---|
Name | ndb-distribution |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | Yes |
Type: Default, Range | enumeration: KEYHASH / LINHASH, KEYHASH (Version: 5.7) |
Notes | DESCRIPTION: Default distribution for new tables in NDBCLUSTER (KEYHASH or LINHASH, default is KEYHASH) |
Controls the default distribution method for
NDB
tables. Can be set to
either of KEYHASH
(key hashing) or
LINHASH
(linear hashing).
KEYHASH
is the default.
Table 21.218 Type and value information for ndb-log-apply-status
Property | Value |
---|---|
Name | ndb-log-apply-status |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | No |
Type: Default, Range | boolean: OFF (Version: 5.7) |
Notes | DESCRIPTION: Cause a MySQL server acting as a slave to log mysql.ndb_apply_status updates received from its immediate master in its own binary log, using its own server ID. Effective only if the server is started with the --ndbcluster option. |
Causes a slave mysqld to log any
updates received from its immediate master to the
mysql.ndb_apply_status
table in its own
binary log using its own server ID rather than the server
ID of the master. In a circular or chain replication
setting, this allows such updates to propagate to the
mysql.ndb_apply_status
tables of any
MySQL servers configured as slaves of the current
mysqld.
In a chain replication setup, using this option allows downstream (slave) clusters to be aware of their positions relative to all of their upstream contributors (masters).
In a circular replication setup, this option causes
changes to ndb_apply_status
tables to
complete the entire circuit, eventually propagating back
to the originating NDB Cluster. This also allows a cluster
acting as a master to see when its changes (epochs) have
been applied to the other clusters in the circle.
This option has no effect unless the MySQL server is
started with the
--ndbcluster
option.
--ndb-log-empty-epochs=[ON|OFF]
Table 21.219 Type and value information for ndb-log-empty-epochs
Property | Value |
---|---|
Name | ndb-log-empty-epochs |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | Yes |
Type: Default, Range | boolean: OFF (Version: 5.7) |
Notes | DESCRIPTION: When enabled, causes epochs in which there were no changes to be written to the ndb_apply_status and ndb_binlog_index tables, even when --log-slave-updates is enabled. |
Causes epochs during which there were no changes to be
written to the ndb_apply_status
and
ndb_binlog_index
tables, even when
log_slave_updates
is
enabled.
By default this option is disabled. Disabling
--ndb-log-empty-epochs
causes epoch
transactions with no changes not to be written to the
binary log, although a row is still written even for an
empty epoch in ndb_binlog_index
.
Because --ndb-log-empty-epochs=1
causes
the size of the ndb_binlog_index
table
to increase independently of the size of the binary log,
users should be prepared to manage the growth of this
table, even if they expect the cluster to be idle a large
part of the time.
--ndb-log-empty-update=[ON|OFF]
Table 21.220 Type and value information for ndb-log-empty-update
Property | Value |
---|---|
Name | ndb-log-empty-update |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | Yes |
Type: Default, Range | boolean: OFF (Version: 5.7) |
Notes | DESCRIPTION: When enabled, causes updates that produced no changes to be written to the ndb_apply_status and ndb_binlog_index tables, even when --log-slave-updates is enabled. |
Causes updates that produced no changes to be written to
the ndb_apply_status
and
ndb_binlog_index
tables, when when
log_slave_updates
is
enabled.
By default this option is disabled
(OFF
). Disabling
--ndb-log-empty-update
causes updates
with no changes not to be written to the binary log.
--ndb-log-exclusive-reads=[0|1]
Table 21.221 Type and value information for ndb-log-exclusive-reads
Property | Value |
---|---|
Name | ndb-log-exclusive-reads |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Both |
Dynamic | Yes |
Type: Default, Range | boolean: 0 (Version: 5.7) |
Notes | DESCRIPTION: Log primary key reads with exclusive locks; allow conflict resolution based on read conflicts |
Starting the server with this option causes primary key
reads to be logged with exclusive locks, which allows for
NDB Cluster Replication conflict detection and resolution
based on read conflicts. You can also enable and disable
these locks at runtime by setting the value of the
ndb_log_exclusive_reads
system variable to 1 or 0, respectively. 0 (disable
locking) is the default.
For more information, see Read conflict detection and resolution.
Table 21.222 Type and value information for ndb-log-orig
Property | Value |
---|---|
Name | ndb-log-orig |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | No |
Type: Default, Range | boolean: OFF (Version: 5.7) |
Notes | DESCRIPTION: Log originating server id and epoch in mysql.ndb_binlog_index table |
Log the originating server ID and epoch in the
ndb_binlog_index
table.
This makes it possible for a given epoch to have
multiple rows in ndb_binlog_index
,
one for each originating epoch.
For more information, see Section 21.6.4, “NDB Cluster Replication Schema and Tables”.
Table 21.223 Type and value information for ndb-log-transaction-id
Property | Value |
---|---|
Name | ndb-log-transaction-id |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | No |
Type: Default, Range | boolean: OFF (Version: 5.7) |
Notes | DESCRIPTION: Write NDB transaction IDs in the binary log. Requires --log-bin-v1-events=OFF. |
Causes a slave mysqld to write the NDB
transaction ID in each row of the binary log. Such logging
requires the use of the Version 2 event format for the
binary log; thus, the
log_bin_use_v1_row_events
system variable must be disabled to use this option.
This option is not supported in mainline MySQL Server
5.7. It is required to enable NDB Cluster
Replication conflict detection and resolution using the
NDB$EPOCH_TRANS()
function (see
NDB$EPOCH_TRANS()).
The default value is FALSE
.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
Table 21.224 Type and value information for ndb-log-update-minimal
Property | Value |
---|---|
Name | ndb-log-update-minimal |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | Yes |
Type: Default, Range | boolean: OFF (Version: NDB 7.5-7.6) |
Type: Default, Range | boolean: OFF (Version: 7.5.7) |
Type: Default, Range | boolean: OFF (Version: 7.6.3) |
Notes | DESCRIPTION: Log updates in a minimal format. |
Log updates in a minimal fashion, by writing only the
primary key values in the before image, and only the
changed columns in the after image. This may cause
compatibility problems if replicating to storage engines
other than NDB
.
Table 21.225 Type and value information for ndb-mgmd-host
Property | Value |
---|---|
Name | ndb-mgmd-host |
Command Line | Yes |
System Variable | No |
Option File | Yes |
Scope | |
Dynamic | No |
Type: Default, Range | string: localhost:1186 (Version: 5.7) |
Notes | DESCRIPTION: Set the host (and port, if desired) for connecting to management server |
Can be used to set the host and port number of a single
management server for the program to connect to. If the
program requires node IDs or references to multiple
management servers (or both) in its connection
information, use the
--ndb-connectstring
option
instead.
Table 21.226 Type and value information for ndb-nodeid
Property | Value |
---|---|
Name | ndb-nodeid |
Command Line | Yes |
System Variable | No |
Status Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | No |
Type | |
Default, Range | / 1 - 63 (Version: 5.0.45) |
Default, Range | / 1 - 255 (Version: 5.1.5) |
Notes | DESCRIPTION: NDB Cluster node ID for this MySQL server |
Set this MySQL server's node ID in an NDB Cluster.
The --ndb-nodeid
option overrides any
node ID set with
--ndb-connectstring
,
regardless of the order in which the two options are used.
In addition, if --ndb-nodeid
is used,
then either a matching node ID must be found in a
[mysqld]
or [api]
section of config.ini
, or there must
be an “open” [mysqld]
or
[api]
section in the file (that is, a
section without a NodeId
or
Id
parameter specified). This is also
true if the node ID is specified as part of the connection
string.
Regardless of how the node ID is determined, its is shown
as the value of the global status variable
Ndb_cluster_node_id
in the output of
SHOW STATUS
, and as
cluster_node_id
in the
connection
row of the output of
SHOW ENGINE
NDBCLUSTER STATUS
.
For more information about node IDs for NDB Cluster SQL nodes, see Section 21.3.3.7, “Defining SQL and Other API Nodes in an NDB Cluster”.
--ndb-optimization-delay=
milliseconds
Table 21.227 Type and value information for ndb-optimization-delay
Property | Value |
---|---|
Name | ndb-optimization-delay |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | Yes |
Type: Default, Range | integer: 10 / 0 - 100000 (Version: NDB 7.5-7.6) |
Notes | DESCRIPTION: Sets the number of milliseconds to wait between processing sets of rows by OPTIMIZE TABLE on NDB tables |
Set the number of milliseconds to wait between sets of
rows by OPTIMIZE TABLE
statements on NDB
tables. The
default is 10.
--ndb-recv-thread-activation-threshold=
threshold
Table 21.228 Type and value information for ndb-recv-thread-activation-threshold
Property | Value |
---|---|
Name | ndb-recv-thread-activation-threshold |
Command Line | Yes |
System Variable | No |
Option File | Yes |
Scope | |
Dynamic | No |
Type: Default, Range | integer: 8 / 0 (MIN_ACTIVATION_THRESHOLD) - 16 (MAX_ACTIVATION_THRESHOLD) (Version: NDB 7.5-7.6) |
Notes | DESCRIPTION: Activation threshold when receive thread takes over the polling of the cluster connection (measured in concurrently active threads) |
When this number of concurrently active threads is reached, the receive thread takes over polling of the cluster connection.
--ndb-recv-thread-cpu-mask=
bitmask
Table 21.229 Type and value information for ndb-recv-thread-cpu-mask
Property | Value |
---|---|
Name | ndb-recv-thread-cpu-mask |
Command Line | Yes |
System Variable | No |
Option File | Yes |
Scope | |
Dynamic | No |
Type: Default, Range | bitmap: [empty] (Version: 5.7) |
Notes | DESCRIPTION: CPU mask for locking receiver threads to specific CPUs; specified as hexadecimal. See documentation for details. |
Set a CPU mask for locking receiver threads to specific
CPUs. This is specified as a hexadecimal bitmask; for
example, 0x33
means that one CPU is
used per receiver thread. An empty string (no locking of
receiver threads) is the default.
ndb-transid-mysql-connection-map=
state
Table 21.230 Type and value information for ndb-transid-mysql-connection-map
Property | Value |
---|---|
Name | ndb-transid-mysql-connection-map |
Command Line | Yes |
System Variable | No |
Option File | No |
Scope | |
Dynamic | No |
Type: Default, Range | enumeration: ON / ON, OFF, FORCE (Version: 5.7) |
Notes | DESCRIPTION: Enable or disable the ndb_transid_mysql_connection_map plugin; that is, enable or disable the INFORMATION_SCHEMA table having that name |
Enables or disables the plugin that handles the
ndb_transid_mysql_connection_map
table in the INFORMATION_SCHEMA
database. Takes one of the values ON
,
OFF
, or FORCE
.
ON
(the default) enables the plugin.
OFF
disables the plugin, which makes
ndb_transid_mysql_connection_map
inaccessible. FORCE
keeps the MySQL
Server from starting if the plugin fails to load and
start.
You can see whether the
ndb_transid_mysql_connection_map
table plugin is running by checking the output of
SHOW PLUGINS
.
Table 21.231 Type and value information for ndb-wait-connected
Property | Value |
---|---|
Name | ndb-wait-connected |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | No |
Type: Default, Range | integer: 0 / 0 - 31536000 (Version: 5.7) |
Type: Default, Range | integer: 30 / 0 - 31536000 (Version: NDB 7.5-7.6) |
Type: Default, Range | integer: 0 / 0 - 31536000 (Version: 5.7) |
Type: Default, Range | integer: 30 / 0 - 31536000 (Version: NDB 7.5-7.6) |
Notes | DESCRIPTION: Time (in seconds) for the MySQL server to wait for connection to cluster management and data nodes before accepting MySQL client connections |
This option sets the period of time that the MySQL server
waits for connections to NDB Cluster management and data
nodes to be established before accepting MySQL client
connections. The time is specified in seconds. The default
value is 30
.
Table 21.232 Type and value information for ndb-wait-setup
Property | Value |
---|---|
Name | ndb-wait-setup |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | No |
Type: Default, Range | integer: 15 / 0 - 31536000 (Version: NDB 7.5-7.6) |
Type: Default, Range | integer: 15 / 0 - 31536000 (Version: NDB 7.5-7.6) |
Type: Default, Range | integer: 15 / 0 - 31536000 (Version: NDB 7.5-7.6) |
Type: Default, Range | integer: 30 / 0 - 31536000 (Version: NDB 7.5-7.6) |
Type: Default, Range | integer: 15 / 0 - 31536000 (Version: NDB 7.5-7.6) |
Type: Default, Range | integer: 30 / 0 - 31536000 (Version: NDB 7.5-7.6) |
Notes | DESCRIPTION: Time (in seconds) for the MySQL server to wait for NDB engine setup to complete |
This variable shows the period of time that the MySQL
server waits for the NDB
storage engine to complete setup before timing out and
treating NDB
as unavailable.
The time is specified in seconds. The default value is
30
.
Table 21.233 Type and value information for skip-ndbcluster
Property | Value |
---|---|
Name | skip-ndbcluster |
Command Line | Yes |
System Variable | No |
Option File | Yes |
Scope | |
Dynamic | No |
Notes | DESCRIPTION: Disable the NDB Cluster storage engine |
Disable the NDBCLUSTER
storage engine. This is the default for binaries that were
built with NDBCLUSTER
storage
engine support; the server allocates memory and other
resources for this storage engine only if the
--ndbcluster
option is
given explicitly. See
Section 21.3.1, “Quick Test Setup of NDB Cluster”, for an example.
This section provides detailed information about MySQL server
system variables that are specific to NDB Cluster and the
NDB
storage engine. For system
variables not specific to NDB Cluster, see
Section 5.1.7, “Server System Variables”. For general
information on using system variables, see
Section 5.1.8, “Using System Variables”.
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 |
Determines the probability of gaps in an autoincremented
column. Set it to 1
to minimize this.
Setting it to a high value for optimization makes inserts
faster, but decreases the likelihood that consecutive
autoincrement numbers will be used in a batch of inserts.
This variable affects only the number of
AUTO_INCREMENT
IDs that are fetched
between statements; within a given statement, at least 32
IDs are obtained at a time.
This variable does not affect inserts performed using
INSERT
... SELECT
.
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 |
The number of milliseconds that elapse between checks of NDB Cluster SQL nodes by the MySQL query cache. Setting this to 0 (the default and minimum value) means that the query cache checks for validation on every query.
The recommended maximum value for this variable is 1000, which means that the check is performed once per second. A larger value means that the check is performed and possibly invalidated due to updates on different SQL nodes less often. It is generally not desirable to set this to a value greater than 2000.
The query cache is deprecated as of MySQL 5.7.20, and is
removed in MySQL 8.0. Deprecation includes
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 |
By the default, executing RESET
SLAVE
causes an NDB Cluster replication slave to
purge all rows from its
ndb_apply_status
table. You can disable
this by setting
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 |
Sets the ID of a “nearest” data node—that is, a preferred nonlocal data node is chosen to execute the transaction, rather than one running on the same host as the SQL or API node. This used to ensure that when a fully replicated table is accessed, we access it on this data node, to ensure that the local copy of the table is always used whenever possible. This can also be used for providing hints for transactions.
This can improve data access times in the case of a node that is physically closer than and thus has higher network throughput than others on the same host.
See Section 13.1.18.10, “Setting NDB_TABLE Options”, for further information.
Added in NDB 7.5.2.
An equivalent method
set_data_node_neighbour()
is provided for use in NDB API applications.
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 |
Default Value (>= 5.7.16-ndb-7.5.4) | FIXED |
Default Value (>= 5.7.11-ndb-7.5.1, <= 5.7.13-ndb-7.5.3) | DYNAMIC |
Valid Values |
|
In NDB 7.5.1 and later, sets the default
COLUMN_FORMAT
and
ROW_FORMAT
for new tables (see
Section 13.1.18, “CREATE TABLE Statement”).
In NDB 7.5.1, the default for this variable was
DYNAMIC
; in NDB 7.5.4, the default was
changed to FIXED
to maintain backwards
compatibility with older release series (Bug #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 |
Controls whether or not constraint checks are deferred,
where these are supported. 0
is the
default.
This variable is not normally needed for operation of NDB Cluster or NDB Cluster Replication, and is intended primarily for use in testing.
Property | Value |
---|---|
Command-Line Format | --ndb-distribution={KEYHASH|LINHASH} |
System Variable | ndb_distribution |
Scope | Global |
Dynamic | Yes |
Type | Enumeration |
Default Value | KEYHASH |
Valid Values |
|
Controls the default distribution method for
NDB
tables. Can be set to
either of KEYHASH
(key hashing) or
LINHASH
(linear hashing).
KEYHASH
is the default.
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 |
Sets the percentage of the maximum memory allocated to the event buffer (ndb_eventbuffer_max_alloc) that should be available in event buffer after reaching the maximum, before starting to buffer again.
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 |
Sets the maximum amount memory (in bytes) that can be allocated for buffering events by the NDB API. 0 means that no limit is imposed, and is the default.
Property | Value |
---|---|
Command-Line Format | ndb_extra_logging=# |
System Variable | ndb_extra_logging |
Scope | Global |
Dynamic | Yes |
Type | Integer |
Default Value | 1 |
This variable enables recording in the MySQL error log of
information specific to the
NDB
storage engine.
When this variable is set to 0, the only information
specific to NDB
that is written to the
MySQL error log relates to transaction handling. If it set
to a value greater than 0 but less than 10,
NDB
table schema and connection events
are also logged, as well as whether or not conflict
resolution is in use, and other NDB
errors and information. If the value is set to 10 or more,
information about NDB
internals, such
as the progress of data distribution among cluster nodes,
is also written to the MySQL error log. The default is 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 |
Forces sending of buffers to
NDB
immediately, without
waiting for other threads. Defaults to
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 |
Determines whether new NDB
tables are
fully replicated. This setting can be overridden for an
individual table using
COMMENT="NDB_TABLE=FULLY_REPLICATED=..."
in a CREATE TABLE
or
ALTER TABLE
statement; see
Section 13.1.18.10, “Setting NDB_TABLE Options”,
for syntax and other information.
Added in 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 |
Use NDB
index statistics in
query optimization. The default is 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 |
This variable is used for providing tuning options for NDB index statistics generation. The list consist of comma-separated name-value pairs of option names and values, and this list must not contain any space characters.
Options not used when setting
ndb_index_stat_option
are not changed
from their default values. For example, you can set
ndb_index_stat_option =
'loop_idle=1000ms,cache_limit=32M'
.
Time values can be optionally suffixed with
h
(hours), m
(minutes), or s
(seconds). Millisecond
values can optionally be specified using
ms
; millisecond values cannot be
specified using h
,
m
, or s
.) Integer
values can be suffixed with K
,
M
, or G
.
The names of the options that can be set using this variable are shown in the table that follows. The table also provides brief descriptions of the options, their default values, and (where applicable) their minimum and maximum values.
Table 21.234 ndb_index_stat_option options and values
Name | Description | Default/Units | Minimum/Maximum |
---|---|---|---|
loop_enable |
1000 ms | 0/4G | |
loop_idle |
Time to sleep when idle | 1000 ms | 0/4G |
loop_busy |
Time to sleep when more work is waiting | 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 |
How often to check for new statistics | 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 |
Clean LRU cache, from read time | 1 m | 0/4G |
cache_limit |
Maximum amount of memory in bytes used for cached index statistics by this mysqld; clean up the cache when this is exceeded. | 32 M | 0/4G |
cache_lowpct |
90 | 0/100 | |
zero_total |
Setting this to 1 resets all accumulating counters in
ndb_index_stat_status to 0. This
option value is also reset to 0 when this is done. |
0 | 0/1 |
Property | Value |
---|---|
System Variable | ndb_join_pushdown |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | ON |
This variable controls whether joins on
NDB
tables are pushed down to
the NDB kernel (data nodes). Previously, a join was
handled using multiple accesses of
NDB
by the SQL node; however,
when ndb_join_pushdown
is
enabled, a pushable join is sent in its entirety to the
data nodes, where it can be distributed among the data
nodes and executed in parallel on multiple copies of the
data, with a single, merged result being returned to
mysqld. This can reduce greatly the
number of round trips between an SQL node and the data
nodes required to handle such a join.
By default,
ndb_join_pushdown
is
enabled.
Conditions for NDB pushdown joins. In order for a join to be pushable, it must meet the following conditions:
Only columns can be compared, and all columns to be joined must use exactly the same data type.
This means that expressions such as t1.a =
t2.a +
cannot be pushed down, and that (for example) a join
on an constant
INT
column and a
BIGINT
column also
cannot be pushed down.
Explicit locking is not supported; however, the
NDB
storage engine's
characteristic implicit row-based locking is enforced.
This means that a join using FOR
UPDATE
cannot be pushed down.
In order for a join to be pushed down, child tables in
the join must be accessed using one of the
ref
,
eq_ref
, or
const
access methods,
or some combination of these methods.
Outer joined child tables can only be pushed using
eq_ref
.
If the root of the pushed join is an
eq_ref
or
const
, only child
tables joined by
eq_ref
can be
appended. (A table joined by
ref
is likely to
become the root of another pushed join.)
If the query optimizer decides on Using join
cache
for a candidate child table, that
table cannot be pushed as a child. However, it may be
the root of another set of pushed tables.
Joins referencing tables explicitly partitioned by
[LINEAR] HASH
,
LIST
, or RANGE
currently cannot be pushed down.
You can see whether a given join can be pushed down by
checking it with EXPLAIN
;
when the join can be pushed down, you can see references
to the pushed join
in the
Extra
column of the output, as shown in
this example:
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)
If inner joined child tables are joined by
ref
,
and the result is ordered or
grouped by a sorted index, this index cannot provide
sorted rows, which forces writing to a sorted tempfile.
Two additional sources of information about pushed join performance are available:
The status variables
Ndb_pushed_queries_defined
,
Ndb_pushed_queries_dropped
,
Ndb_pushed_queries_executed
,
and
Ndb_pushed_reads
.
The counters in the
ndbinfo.counters
table that belong to the DBSPJ
kernel block. See
Section 21.5.10.10, “The ndbinfo counters Table”, for
information about these counters. See also
The DBSPJ Block,
in the NDB Cluster API Developer
Guide.
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 |
A read-only variable which shows whether the server was
started with the
--ndb-log-apply-status
option.
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 |
Causes updates to NDB
tables to be
written to the binary log. Setting this variable has no
effect if binary logging is not already enabled for the
server using log_bin
.
ndb_log_bin
defaults to 1 (ON);
normally, there is never any need to change this value in
a production environment.
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 |
Causes a mapping of epochs to positions in the binary log
to be inserted into the
ndb_binlog_index
table. Setting this
variable has no effect if binary logging is not already
enabled for the server using
log_bin
. (In addition,
ndb_log_bin
must not be
disabled.) ndb_log_binlog_index
defaults to 1
(ON
);
normally, there is never any need to change this value in
a production environment.
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 |
When this variable is set to 0, epoch transactions with no
changes are not written to the binary log, although a row
is still written even for an empty epoch in
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 |
When this variable is set to ON
(1
), update transactions with no
changes are written to the binary log, even when
log_slave_updates
is
enabled.
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 |
This variable determines whether primary key reads are
logged with exclusive locks, which allows for NDB Cluster
Replication conflict detection and resolution based on
read conflicts. To enable these locks, set the value of
ndb_log_exclusive_reads
to 1. 0, which
disables such locking, is the default.
For more information, see Read conflict detection and resolution.
Property | Value |
---|---|
Command-Line Format | --ndb-log-orig[={OFF|ON}] |
System Variable | ndb_log_orig |
Scope | Global |
Dynamic | No |
Type | Boolean |
Default Value | OFF |
Shows whether the originating server ID and epoch are
logged in the ndb_binlog_index
table.
Set using the
--ndb-log-orig
server
option.
Property | Value |
---|---|
System Variable | ndb_log_transaction_id |
Scope | Global |
Dynamic | No |
Type | Boolean |
Default Value | OFF |
This read-only, Boolean system variable shows whether a
slave mysqld writes NDB transaction IDs
in the binary log (required to use
“active-active” NDB Cluster Replication with
NDB$EPOCH_TRANS()
conflict detection).
To change the setting, use the
--ndb-log-transaction-id
option.
ndb_log_transaction_id
is
not supported in mainline MySQL Server 5.7.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
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 |
There are two forms of optimized node selection, described here:
The SQL node uses
promixity to
determine the transaction coordinator; that is, the
“closest” data node to the SQL node is
chosen as the transaction coordinator. For this
purpose, a data node having a shared memory connection
with the SQL node is considered to be
“closest” to the SQL node; the next
closest (in order of decreasing proximity) are: TCP
connection to localhost
, followed
by TCP connection from a host other than
localhost
.
The SQL thread uses distribution awareness to select the data node. That is, the data node housing the cluster partition accessed by the first statement of a given transaction is used as the transaction coordinator for the entire transaction. (This is effective only if the first statement of the transaction accesses no more than one cluster partition.)
This option takes one of the integer values
0
, 1
,
2
, or 3
.
3
is the default. These values affect
node selection as follows:
0
: Node selection is not optimized.
Each data node is employed as the transaction
coordinator 8 times before the SQL thread proceeds to
the next data node.
1
: Proximity to the SQL node is
used to determine the transaction coordinator.
2
: Distribution awareness is used
to select the transaction coordinator. However, if the
first statement of the transaction accesses more than
one cluster partition, the SQL node reverts to the
round-robin behavior seen when this option is set to
0
.
3
: If distribution awareness can be
employed to determine the transaction coordinator,
then it is used; otherwise proximity is used to select
the transaction coordinator. (This is the default
behavior.)
Proximity is determined as follows:
Start with the value set for the
Group
parameter
(default 55).
For an API node sharing the same host with other API
nodes, decrement the value by 1. Assuming the default
value for Group
, the effective
value for data nodes on same host as the API node is
54, and for remote data nodes 55.
(NDB 7.5.2 and later:) Setting
ndb_data_node_neighbour
further decreases the effective
Group
value by 50, causing this
node to be regarded as the nearest node. This is
needed only when all data nodes are on hosts other
than that hosts the API node and it is desirable to
dedicate one of them to the API node. In normal cases,
the default adjustment described previously is
sufficient.
Frequent changes in
ndb_data_node_neighbour
are not
advisable, since this changes the state of the cluster
connection and thus may disrupt the selection algorithm
for new transactions from each thread until it
stablilizes.
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 |
Enable read from any replica for any
NDB
table subsequently created.
Added in NDB 7.5.2.
ndb_recv_thread_activation_threshold
Property | Value |
---|---|
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) |
When this number of concurrently active threads is reached, the receive thread takes over polling of the cluster connection.
This variable is global in scope. It can also be set on
startup using the
--ndb-recv-thread-activation-threshold
option.
Property | Value |
---|---|
System Variable | ndb_recv_thread_cpu_mask |
Scope | Global |
Dynamic | Yes |
Type | Bitmap |
Default Value | [empty] |
CPU mask for locking receiver threads to specific CPUs.
This is specified as a hexadecimal bitmask. For example,
0x33
means that one CPU is used per
receiver thread. An empty string is the default; setting
ndb_recv_thread_cpu_mask
to this value
removes any receiver thread locks previously set.
This variable is global in scope. It can also be set on
startup using the
--ndb-recv-thread-cpu-mask
option.
ndb_report_thresh_binlog_epoch_slip
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 |
Default Value (>= 5.7.16-ndb-7.5.4) | 10 |
Default Value (<= 5.7.13-ndb-7.5.3) | 3 |
Minimum Value | 0 |
Maximum Value | 256 |
In NDB 7.5.4 and later, this represents the threshold for
the number of epochs completely buffered in the event
buffer, but not yet consumed by the binlog injector
thread. When this degree of slippage (lag) is exceeded, an
event buffer status message is reported, with
BUFFERED_EPOCHS_OVER_THRESHOLD
supplied
as the reason (see
Section 21.5.7.3, “Event Buffer Reporting in the Cluster Log”). Slip
is increased when an epoch is received from data nodes and
buffered completely in the event buffer; it is decreased
when an epoch is consumed by the binlog injector thread,
it is reduced. Empty epochs are buffered and queued, and
so included in this calculation only when this is enabled
using the
Ndb::setEventBufferQueueEmptyEpoch()
method from the NDB API.
Prior to NDB 7.5.4, the value of this vairable served as a
threshold for the number of epochs to be behind before
reporting binary log status. In these previous releases, a
value of 3
—the
default—means that if the difference between which
epoch has been received from the storage nodes and which
epoch has been applied to the binary log is 3 or more, a
status message is then sent to the cluster log.
ndb_report_thresh_binlog_mem_usage
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 |
This is a threshold on the percentage of free memory
remaining before reporting binary log status. For example,
a value of 10
(the default) means that
if the amount of available memory for receiving binary log
data from the data nodes falls below 10%, a status message
is sent to the cluster log.
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 |
Traditionally, NDB
has created tables
with row checksums, which checks for hardware issues at
the expense of performance. Setting
ndb_row_checksum
to 0 means that row
checksums are not used for new or
altered tables, which has a significant impact on
performance for all types of queries. This variable is set
to 1 by default, to provide backward-compatible behavior.
ndb_show_foreign_key_mock_tables
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 |
Show the mock tables used by NDB
to
support
foreign_key_checks=0
.
When this is enabled, extra warnings are shown when
creating and dropping the tables. The real (internal) name
of the table can be seen in the output of
SHOW CREATE 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 |
|
Determine the role of this SQL node (and NDB Cluster) in a
circular (“active-active”) replication setup.
ndb_slave_conflict_role
can take any
one of the values PRIMARY
,
SECONDARY
, PASS
, or
NULL
(the default). The slave SQL
thread must be stopped before you can change
ndb_slave_conflict_role
. In addition,
it is not possible to change directly between
PASS
and either of
PRIMARY
or SECONDARY
directly; in such cases, you must ensure that the SQL
thread is stopped, then execute
SET
@@GLOBAL.ndb_slave_conflict_role = 'NONE'
first.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
Property | Value |
---|---|
System Variable | ndb_table_no_logging |
Scope | Session |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
When this variable is set to ON
or
1
, it causes
NDB
tables not to be
checkpointed to disk. More specifically, this setting
applies to tables which are created or altered using
ENGINE NDB
when
ndb_table_no_logging
is
enabled, and continues to apply for the lifetime of the
table, even if
ndb_table_no_logging
is
later changed. Suppose that A
,
B
, C
, and
D
are tables that we create (and
perhaps also alter), and that we also change the setting
for ndb_table_no_logging
as shown here:
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;
After the previous sequence of events, tables
A
and B
are not
checkpointed; A
was created with
ENGINE NDB
and B was altered to use
NDB
, both while
ndb_table_no_logging
was enabled.
However, tables C
and
D
are logged; C
was
altered to use NDB
and
D
was created using ENGINE
NDB
, both while
ndb_table_no_logging
was
disabled. Setting
ndb_table_no_logging
back
to 1
or ON
does
not cause table C
or D
to be checkpointed.
ndb_table_no_logging
has no effect on the creation of
NDB
table schema files; to
suppress these, use
ndb_table_temporary
instead.
Property | Value |
---|---|
System Variable | ndb_table_temporary |
Scope | Session |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
When set to ON
or 1
,
this variable causes NDB
tables not to be written to disk: This means that no table
schema files are created, and that the tables are not
logged.
Setting this variable currently has no effect. This is a known issue; see Bug #34036.
Property | Value |
---|---|
System Variable | ndb_use_copying_alter_table |
Scope | Global, Session |
Dynamic | No |
Forces NDB
to use copying of
tables in the event of problems with online
ALTER TABLE
operations. The
default value is OFF
.
Property | Value |
---|---|
System Variable | ndb_use_exact_count |
Scope | Global, Session |
Dynamic | Yes |
Type | Boolean |
Default Value | OFF |
Forces NDB
to use a count of
records during SELECT COUNT(*)
query
planning to speed up this type of query. The default value
is OFF
, which allows for faster queries
overall.
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 |
You can disable NDB
transaction support by setting this variable's values to
OFF
(not recommended). The default is
ON
.
Property | Value |
---|---|
System Variable | ndb_version |
Scope | Global |
Dynamic | No |
Type | String |
Default Value |
|
NDB
engine version, as a composite
integer.
Property | Value |
---|---|
System Variable | ndb_version_string |
Scope | Global |
Dynamic | No |
Type | String |
Default Value |
|
NDB
engine version in
ndb-
format.
x.y.z
Table 21.235 Type and value information for server_id_bits
Property | Value |
---|---|
Name | server_id_bits |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | No |
Type: Default, Range | integer: 32 / 7 - 32 (Version: 5.7) |
Notes | DESCRIPTION: Sets the number of least significant bits in the server_id actually used for identifying the server, permitting NDB API applications to store application data in the most significant bits. server_id must be less than 2 to the power of this value. |
This variable indicates the number of least significant
bits within the 32-bit
server_id
which actually
identify the server. Indicating that the server is
actually identified by fewer than 32 bits makes it
possible for some of the remaining bits to be used for
other purposes, such as storing user data generated by
applications using the NDB API's Event API within the
AnyValue
of an
OperationOptions
structure (NDB Cluster uses the
AnyValue
to store the server ID).
When extracting the effective server ID from
server_id
for purposes
such as detection of replication loops, the server ignores
the remaining bits. The
server_id_bits
variable
is used to mask out any irrelevant bits of
server_id
in the IO and
SQL threads when deciding whether an event should be
ignored based on the server ID.
This data can be read from the binary log by
mysqlbinlog, provided that it is run
with its own
server_id_bits
variable
set to 32 (the default).
If the value of server_id
greater than or equal to 2 to the power of
server_id_bits
;
otherwise, mysqld refuses to start.
This system variable is supported only by NDB Cluster. It is not supported in the standard MySQL 5.7 Server.
Table 21.236 Type and value information for slave_allow_batching
Property | Value |
---|---|
Name | slave_allow_batching |
Command Line | Yes |
System Variable | Yes |
Option File | Yes |
Scope | Global |
Dynamic | Yes |
Type: Default, Range | boolean: OFF (Version: 5.7) |
Notes | DESCRIPTION: Turns update batching on and off for a replication slave |
Whether or not batched updates are enabled on NDB Cluster replication slaves.
Setting this variable has an effect only when using
replication with the NDB
storage
engine; in MySQL Server 5.7, it is present
but does nothing. For more information, see
Section 21.6.6, “Starting NDB Cluster Replication (Single Replication Channel)”.
Table 21.237 Type and value information for transaction_allow_batching
Property | Value |
---|---|
Name | transaction_allow_batching |
Command Line | No |
System Variable | Yes |
Option File | No |
Scope | Session |
Dynamic | Yes |
Type: Default, Range | boolean: OFF (Version: 5.7) |
Notes | DESCRIPTION: Allows batching of statements within a transaction. Disable AUTOCOMMIT to use. |
When set to 1
or ON
,
this variable enables batching of statements within the
same transaction. To use this variable,
autocommit
must first be
disabled by setting it to 0
or
OFF
; otherwise, setting
transaction_allow_batching
has no effect.
It is safe to use this variable with transactions that
performs writes only, as having it enabled can lead to
reads from the “before” image. You should
ensure that any pending transactions are committed (using
an explicit COMMIT
if
desired) before issuing a
SELECT
.
transaction_allow_batching
should not be used whenever there is the possibility
that the effects of a given statement depend on the
outcome of a previous statement within the same
transaction.
This variable is currently supported for NDB Cluster only.
The system variables in the following list all relate to the
ndbinfo
information
database.
Table 21.238 Type and value information for ndbinfo_database
Property | Value |
---|---|
Name | ndbinfo_database |
Command Line | No |
System Variable | Yes |
Option File | No |
Scope | Global |
Dynamic | No |
Type: Default, Range | string: ndbinfo (Version: 5.7) |
Notes | DESCRIPTION: The name used for the NDB information database; read only |
Shows the name used for the NDB
information database; the default is
ndbinfo
. This is a read-only variable
whose value is determined at compile time; you can set it
by starting the server using
--ndbinfo-database=
,
which sets the value shown for this variable but does not
actually change the name used for the NDB information
database.
name
Table 21.239 Type and value information for ndbinfo_max_bytes
Property | Value |
---|---|
Name | ndbinfo_max_bytes |
Command Line | Yes |
System Variable | Yes |
Option File | No |
Scope | Both |
Dynamic | Yes |
Type: Default, Range | integer: 0 / - (Version: 5.7) |
Notes | DESCRIPTION: Used for debugging only |
Used in testing and debugging only.
Table 21.240 Type and value information for ndbinfo_max_rows
Property | Value |
---|---|
Name | ndbinfo_max_rows |
Command Line | Yes |
System Variable | Yes |
Option File | No |
Scope | Both |
Dynamic | Yes |
Type: Default, Range | integer: 10 / - (Version: 5.7) |
Notes | DESCRIPTION: Used for debugging only |
Used in testing and debugging only.
Table 21.241 Type and value information for ndbinfo_offline
Property | Value |
---|---|
Name | ndbinfo_offline |
Command Line | No |
System Variable | Yes |
Option File | No |
Scope | Global |
Dynamic | Yes |
Type: Default, Range | boolean: OFF (Version: 5.7) |
Notes | DESCRIPTION: Put the ndbinfo database into offline mode, in which no rows are returned from tables or views |
Place the ndbinfo
database into offline mode, in which tables and views can
be opened even when they do not actually exist, or when
they exist but have different definitions in
NDB
. No rows are returned
from such tables (or views).
Table 21.242 Type and value information for ndbinfo_show_hidden
Property | Value |
---|---|
Name | ndbinfo_show_hidden |
Command Line | Yes |
System Variable | Yes |
Option File | No |
Scope | Both |
Dynamic | Yes |
Type: Default, Range | boolean: OFF (Version: 5.7) |
Notes | DESCRIPTION: Whether to show ndbinfo internal base tables in the mysql client. The default is OFF. |
Whether or not the
ndbinfo
database's
underlying internal tables are shown in the
mysql
client. The default is
OFF
.
Table 21.243 Type and value information for ndbinfo_table_prefix
Property | Value |
---|---|
Name | ndbinfo_table_prefix |
Command Line | Yes |
System Variable | Yes |
Option File | No |
Scope | Both |
Dynamic | Yes |
Type: Default, Range | string: ndb$ (Version: 5.7) |
Notes | DESCRIPTION: The prefix to use for naming ndbinfo internal base tables |
The prefix used in naming the ndbinfo database's base
tables (normally hidden, unless exposed by setting
ndbinfo_show_hidden
).
This is a read-only variable whose default value is
ndb$
. You can start the server with the
--ndbinfo-table-prefix
option, but this
merely sets the variable and does not change the actual
prefix used to name the hidden base tables; the prefix
itself is determined at compile time.
Table 21.244 Type and value information for ndbinfo_version
Property | Value |
---|---|
Name | ndbinfo_version |
Command Line | No |
System Variable | Yes |
Option File | No |
Scope | Global |
Dynamic | No |
Type: Default, Range | string: (Version: 5.7) |
Notes | DESCRIPTION: The version of the ndbinfo engine; read only |
Shows the version of the
ndbinfo
engine in use;
read-only.
This section provides detailed information about MySQL server
status variables that relate to NDB Cluster and the
NDB
storage engine. For status
variables not specific to NDB Cluster, and for general
information on using status variables, see
Section 5.1.9, “Server Status Variables”.
The MySQL server can ask the
NDBCLUSTER
storage engine if
it knows about a table with a given name. This is called
discovery.
Handler_discover
indicates the number of times that tables have been
discovered using this mechanism.
Ndb_api_bytes_sent_count_session
Amount of data (in bytes) sent to the data nodes in this client session.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_bytes_sent_count_slave
Amount of data (in bytes) sent to the data nodes by this slave.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Amount of data (in bytes) sent to the data nodes by this MySQL Server (SQL node).
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_bytes_received_count_session
Amount of data (in bytes) received from the data nodes in this client session.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_bytes_received_count_slave
Amount of data (in bytes) received from the data nodes by this slave.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Amount of data (in bytes) received from the data nodes by this MySQL Server (SQL node).
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_event_data_count_injector
The number of row change events received by the NDB binlog injector thread.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of row change events received by this MySQL Server (SQL node).
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_event_nondata_count_injector
The number of events received, other than row change events, by the NDB binary log injector thread.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of events received, other than row change events, by this MySQL Server (SQL node).
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_event_bytes_count_injector
The number of bytes of events received by the NDB binlog injector thread.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of bytes of events received by this MySQL Server (SQL node).
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of operations in this client session based on or using primary keys. This includes operations on blob tables, implicit unlock operations, and auto-increment operations, as well as user-visible primary key operations.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of operations by this slave based on or using primary keys. This includes operations on blob tables, implicit unlock operations, and auto-increment operations, as well as user-visible primary key operations.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of operations by this MySQL Server (SQL node) based on or using primary keys. This includes operations on blob tables, implicit unlock operations, and auto-increment operations, as well as user-visible primary key operations.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_pruned_scan_count_session
The number of scans in this client session that have been pruned to a single partition.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_pruned_scan_count_slave
The number of scans by this slave that have been pruned to a single partition.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of scans by this MySQL Server (SQL node) that have been pruned to a single partition.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_range_scan_count_session
The number of range scans that have been started in this client session.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_range_scan_count_slave
The number of range scans that have been started by this slave.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of range scans that have been started by this MySQL Server (SQL node).
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_read_row_count_session
The total number of rows that have been read in this client session. This includes all rows read by any primary key, unique key, or scan operation made in this client session.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The total number of rows that have been read by this slave. This includes all rows read by any primary key, unique key, or scan operation made by this slave.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The total number of rows that have been read by this MySQL Server (SQL node). This includes all rows read by any primary key, unique key, or scan operation made by this MySQL Server (SQL node).
You should be aware that this value may not be completely
accurate with regard to rows read by
SELECT
COUNT(*)
queries, due to
the fact that, in this case, the MySQL server actually
reads pseudo-rows in the form [
and sums the rows per
fragment for all fragments in the table to derive an
estimated count for all rows.
table
fragment ID
]:[number of rows in
fragment
]Ndb_api_read_row_count
uses this
estimate and not the actual number of rows in the table.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_scan_batch_count_session
The number of batches of rows received in this client session. 1 batch is defined as 1 set of scan results from a single fragment.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_scan_batch_count_slave
The number of batches of rows received by this slave. 1 batch is defined as 1 set of scan results from a single fragment.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of batches of rows received by this MySQL Server (SQL node). 1 batch is defined as 1 set of scan results from a single fragment.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_table_scan_count_session
The number of table scans that have been started in this client session, including scans of internal tables,.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_table_scan_count_slave
The number of table scans that have been started by this slave, including scans of internal tables,.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of table scans that have been started by this MySQL Server (SQL node), including scans of internal tables,.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_abort_count_session
The number of transactions aborted in this client session.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_abort_count_slave
The number of transactions aborted by this slave.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of transactions aborted by this MySQL Server (SQL node).
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_close_count_session
The number of transactions closed in this client session.
This value may be greater than the sum of
Ndb_api_trans_commit_count_session
and
Ndb_api_trans_abort_count_session
,
since some transactions may have been rolled back.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_close_count_slave
The number of transactions closed by this slave. This
value may be greater than the sum of
Ndb_api_trans_commit_count_slave
and
Ndb_api_trans_abort_count_slave
,
since some transactions may have been rolled back.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of transactions closed by this MySQL Server
(SQL node). This value may be greater than the sum of
Ndb_api_trans_commit_count
and
Ndb_api_trans_abort_count
,
since some transactions may have been rolled back.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_commit_count_session
The number of transactions committed in this client session.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_commit_count_slave
The number of transactions committed by this slave.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of transactions committed by this MySQL Server (SQL node).
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_local_read_row_count_session
The total number of rows that have been read in this client session. This includes all rows read by any primary key, unique key, or scan operation made in this client session.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_local_read_row_count_slave
The total number of rows that have been read by this slave. This includes all rows read by any primary key, unique key, or scan operation made by this slave.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_local_read_row_count
The total number of rows that have been read by this MySQL Server (SQL node). This includes all rows read by any primary key, unique key, or scan operation made by this MySQL Server (SQL node).
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_start_count_session
The number of transactions started in this client session.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_start_count_slave
The number of transactions started by this slave.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of transactions started by this MySQL Server (SQL node).
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of operations in this client session based on or using unique keys.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of operations by this slave based on or using unique keys.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
The number of operations by this MySQL Server (SQL node) based on or using unique keys.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_exec_complete_count_session
The number of times a thread has been blocked in this
client session while waiting for execution of an operation
to complete. This includes all
execute()
calls as well as implicit executes for blob and
auto-increment operations not visible to clients.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_exec_complete_count_slave
The number of times a thread has been blocked by this
slave while waiting for execution of an operation to
complete. This includes all
execute()
calls as well as implicit executes for blob and
auto-increment operations not visible to clients.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_exec_complete_count
The number of times a thread has been blocked by this
MySQL Server (SQL node) while waiting for execution of an
operation to complete. This includes all
execute()
calls as well as implicit executes for blob and
auto-increment operations not visible to clients.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_meta_request_count_session
The number of times a thread has been blocked in this client session waiting for a metadata-based signal, such as is expected for DDL requests, new epochs, and seizure of transaction records.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_meta_request_count_slave
The number of times a thread has been blocked by this slave waiting for a metadata-based signal, such as is expected for DDL requests, new epochs, and seizure of transaction records.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_meta_request_count
The number of times a thread has been blocked by this MySQL Server (SQL node) waiting for a metadata-based signal, such as is expected for DDL requests, new epochs, and seizure of transaction records.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_nanos_count_session
Total time (in nanoseconds) spent in this client session waiting for any type of signal from the data nodes.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_nanos_count_slave
Total time (in nanoseconds) spent by this slave waiting for any type of signal from the data nodes.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Total time (in nanoseconds) spent by this MySQL Server (SQL node) waiting for any type of signal from the data nodes.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_scan_result_count_session
The number of times a thread has been blocked in this client session while waiting for a scan-based signal, such as when waiting for more results from a scan, or when waiting for a scan to close.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it relates to the current session only,
and is not affected by any other clients of this
mysqld.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_scan_result_count_slave
The number of times a thread has been blocked by this slave while waiting for a scan-based signal, such as when waiting for more results from a scan, or when waiting for a scan to close.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope. If
this MySQL server does not act as a replication slave, or
does not use NDB tables, this value is always 0.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_scan_result_count
The number of times a thread has been blocked by this MySQL Server (SQL node) while waiting for a scan-based signal, such as when waiting for more results from a scan, or when waiting for a scan to close.
Although this variable can be read using either
SHOW GLOBAL
STATUS
or
SHOW SESSION
STATUS
, it is effectively global in scope.
For more information, see Section 21.5.17, “NDB API Statistics Counters and Variables”.
If the server is acting as an NDB Cluster node, then the value of this variable its node ID in the cluster.
If the server is not part of an NDB Cluster, then the value of this variable is 0.
If the server is part of an NDB Cluster, the value of this variable is the host name or IP address of the Cluster management server from which it gets its configuration data.
If the server is not part of an NDB Cluster, then the value of this variable is an empty string.
If the server is part of an NDB Cluster, the value of this variable is the number of the port through which it is connected to the Cluster management server from which it gets its configuration data.
If the server is not part of an NDB Cluster, then the value of this variable is 0.
Shows the number of times that a row was rejected on the
current SQL node due to NDB Cluster Replication conflict
resolution using NDB$MAX_DELETE_WIN()
,
since the last time that this mysqld
was started.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
Used in NDB Cluster Replication conflict resolution, this variable shows the number of times that a row was not applied on the current SQL node due to “greatest timestamp wins” conflict resolution since the last time that this mysqld was started.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
Used in NDB Cluster Replication conflict resolution, this variable shows the number of times that a row was not applied as the result of “same timestamp wins” conflict resolution on a given mysqld since the last time it was restarted.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
Used in NDB Cluster Replication conflict resolution, this
variable shows the number of rows found to be in conflict
using NDB$EPOCH()
conflict resolution
on a given mysqld since the last time
it was restarted.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
Shows the number of rows found to be in conflict in NDB
Cluster Replication conflict resolution, when using
NDB$EPOCH2()
, on the master designated
as the primary since the last time it was restarted.
For more information, see NDB$EPOCH2().
Used in NDB Cluster Replication conflict resolution, this
variable shows the number of rows found to be in conflict
using NDB$EPOCH_TRANS()
conflict
resolution on a given mysqld since the
last time it was restarted.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
Used in NDB Cluster Replication conflict resolution, this
variable shows the number of rows found to be in conflict
using NDB$EPOCH_TRANS2()
conflict
resolution on a given mysqld since the
last time it was restarted.
For more information, see NDB$EPOCH2_TRANS().
Ndb_conflict_last_conflict_epoch
The most recent epoch in which a conflict was detected on
this slave. You can compare this value with
Ndb_slave_max_replicated_epoch
;
if Ndb_slave_max_replicated_epoch
is
greater than
Ndb_conflict_last_conflict_epoch
, no
conflicts have yet been detected.
See Section 21.6.11, “NDB Cluster Replication Conflict Resolution”, for more information.
Ndb_conflict_reflected_op_discard_count
When using NDB Cluster Replication conflict resolution, this is the number of reflected operations that were not applied on the secondary, due to encountering an error during execution.
See Section 21.6.11, “NDB Cluster Replication Conflict Resolution”, for more information.
Ndb_conflict_reflected_op_prepare_count
When using conflict resolution with NDB Cluster Replication, this status variable contains the number of reflected operations that have been defined (that is, prepared for execution on the secondary).
See Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
When using conflict resolution with NDB Cluster Replication, this gives the number of refresh operations that have been prepared for execution on the secondary.
See Section 21.6.11, “NDB Cluster Replication Conflict Resolution”, for more information.
Ndb_conflict_last_stable_epoch
Number of rows found to be in conflict by a transactional conflict function
See Section 21.6.11, “NDB Cluster Replication Conflict Resolution”, for more information.
Ndb_conflict_trans_row_conflict_count
Used in NDB Cluster Replication conflict resolution, this status variable shows the number of rows found to be directly in-conflict by a transactional conflict function on a given mysqld since the last time it was restarted.
Currently, the only transactional conflict detection
function supported by NDB Cluster is NDB$EPOCH_TRANS(), so
this status variable is effectively the same as
Ndb_conflict_fn_epoch_trans
.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
Ndb_conflict_trans_row_reject_count
Used in NDB Cluster Replication conflict resolution, this
status variable shows the total number of rows realigned
due to being determined as conflicting by a transactional
conflict detection function. This includes not only
Ndb_conflict_trans_row_conflict_count
,
but any rows in or dependent on conflicting transactions.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
Ndb_conflict_trans_reject_count
Used in NDB Cluster Replication conflict resolution, this status variable shows the number of transactions found to be in conflict by a transactional conflict detection function.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
Ndb_conflict_trans_detect_iter_count
Used in NDB Cluster Replication conflict resolution, this
shows the number of internal iterations required to commit
an epoch transaction. Should be (slightly) greater than or
equal to
Ndb_conflict_trans_conflict_commit_count
.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
Ndb_conflict_trans_conflict_commit_count
Used in NDB Cluster Replication conflict resolution, this shows the number of epoch transactions committed after they required transactional conflict handling.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
When using delete-delete conflict detection, this is the number of delete-delete conflicts detected, where a delete operation is applied, but the indicated row does not exist.
Provides the number of round trips to the
NDB
kernel made by
operations.
The epoch most recently committed by
NDB
.
The epoch most recently committed by this
NDB
client.
If the server is part of an NDB Cluster, the value of this variable is the number of data nodes in the cluster.
If the server is not part of an NDB Cluster, then the value of this variable is 0.
The total number of joins pushed down to the NDB kernel for distributed handling on the data nodes.
Joins tested using
EXPLAIN
that can be
pushed down contribute to this number.
The number of joins that were pushed down to the NDB kernel but that could not be handled there.
The number of joins successfully pushed down to
NDB
and executed there.
The number of rows returned to mysqld from the NDB kernel by joins that were pushed down.
This variable holds a count of the number of scans
executed by NDBCLUSTER
since
the NDB Cluster was last started where
NDBCLUSTER
was able to use
partition pruning.
Using this variable together with
Ndb_scan_count
can be
helpful in schema design to maximize the ability of the
server to prune scans to a single table partition, thereby
involving only a single data node.
This variable holds a count of the total number of scans
executed by NDBCLUSTER
since
the NDB Cluster was last started.
Ndb_slave_max_replicated_epoch
The most recently committed epoch on this slave. You can
compare this value with
Ndb_conflict_last_conflict_epoch
;
if Ndb_slave_max_replicated_epoch
is
the greater of the two, no conflicts have yet been
detected.
For more information, see Section 21.6.11, “NDB Cluster Replication Conflict Resolution”.
If this MySQL Server is connected to an NDB cluster, this read-only variable shows the cluster system name. Otherwise, the value is an empty string.