MySQL 9.3 Reference Manual Including MySQL NDB Cluster 9.3
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 7.1, “The MySQL Server”.
For NDB Cluster configuration parameters used in the cluster
configuration file (usually named config.ini
),
see Section 25.4, “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 7.1.7, “Server Command Options”.
For information about command-line options used with other NDB Cluster processes, see Section 25.5, “NDB Cluster Programs”.
Command-Line Format | --ndbcluster[=value] |
---|---|
Disabled by | skip-ndbcluster |
Type | Enumeration |
Default Value | ON |
Valid Values |
|
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.
The --ndbcluster
option is ignored (and the
NDB
storage engine is
not enabled) if
--initialize
is also used. (It
is neither necessary nor desirable to use this option together
with --initialize
.)
--ndb-allow-copying-alter-table=[ON|OFF]
Command-Line Format | --ndb-allow-copying-alter-table[={OFF|ON}] |
---|---|
System Variable | ndb_allow_copying_alter_table |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | ON |
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.
--ndb-applier-allow-skip-epoch
Command-Line Format | --ndb-applier-allow-skip-epoch |
---|---|
System Variable | ndb_applier_allow_skip_epoch |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Use together with
--replica-skip-errors
to cause
NDB
to ignore skipped epoch transactions.
Has no effect when used alone.
Command-Line Format | --ndb-batch-size |
---|---|
System Variable | ndb_batch_size |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 32768 |
Minimum Value | 0 |
Maximum Value | 2147483648 |
Unit | bytes |
This sets the size in bytes that is used for NDB transaction batches.
--ndb-cluster-connection-pool=
#
Command-Line Format | --ndb-cluster-connection-pool |
---|---|
System Variable | ndb_cluster_connection_pool |
System Variable | ndb_cluster_connection_pool |
Scope | Global |
Scope | Global |
Dynamic | No |
Dynamic | No |
SET_VAR Hint Applies |
No |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 1 |
Minimum Value | 1 |
Maximum Value | 63 |
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
Command-Line Format | --ndb-cluster-connection-pool-nodeids |
---|---|
System Variable | ndb_cluster_connection_pool_nodeids |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Set |
Default Value |
|
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-blob-read-batch-bytes=
bytes
Command-Line Format | --ndb-blob-read-batch-bytes |
---|---|
System Variable | ndb_blob_read_batch_bytes |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 65536 |
Minimum Value | 0 |
Maximum Value | 4294967295 |
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
Command-Line Format | --ndb-blob-write-batch-bytes |
---|---|
System Variable | ndb_blob_write_batch_bytes |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 65536 |
Minimum Value | 0 |
Maximum Value | 4294967295 |
Unit | bytes |
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
Command-Line Format | --ndb-connectstring |
---|---|
Type | String |
When using the NDBCLUSTER
storage
engine, this option specifies the management server that
distributes cluster configuration data. See
Section 25.4.3.3, “NDB Cluster Connection Strings”, for
syntax.
--ndb-default-column-format=[FIXED|DYNAMIC]
Command-Line Format | --ndb-default-column-format={FIXED|DYNAMIC} |
---|---|
System Variable | ndb_default_column_format |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Enumeration |
Default Value | FIXED |
Valid Values |
|
Sets the default COLUMN_FORMAT
and
ROW_FORMAT
for new tables (see
Section 15.1.22, “CREATE TABLE Statement”). The default is
FIXED
.
--ndb-deferred-constraints=[0|1]
Command-Line Format | --ndb-deferred-constraints |
---|---|
System Variable | ndb_deferred_constraints |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 0 |
Minimum Value | 0 |
Maximum Value | 1 |
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.
Command-Line Format | --ndb-schema-dist-timeout=# |
---|---|
System Variable | ndb_schema_dist_timeout |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 120 |
Minimum Value | 5 |
Maximum Value | 1200 |
Unit | seconds |
Specifies the maximum time in seconds that this mysqld waits for a schema operation to complete before marking it as having timed out.
--ndb-distribution=[KEYHASH|LINHASH]
Command-Line Format | --ndb-distribution={KEYHASH|LINHASH} |
---|---|
System Variable | ndb_distribution |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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.
Command-Line Format | --ndb-log-apply-status[={OFF|ON}] |
---|---|
System Variable | ndb_log_apply_status |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
Causes a replica mysqld to log any updates
received from its immediate source to the
mysql.ndb_apply_status
table in its own
binary log using its own server ID rather than the server ID
of the source. 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 replicas of the current
mysqld.
In a chain replication setup, using this option allows downstream (replica) clusters to be aware of their positions relative to all of their upstream contributors (sourcess).
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
replication source 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]
Command-Line Format | --ndb-log-empty-epochs[={OFF|ON}] |
---|---|
System Variable | ndb_log_empty_epochs |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
Causes epochs during which there were no changes to be written
to the ndb_apply_status
and
ndb_binlog_index
tables, even when
log_replica_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]
Command-Line Format | --ndb-log-empty-update[={OFF|ON}] |
---|---|
System Variable | ndb_log_empty_update |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
Causes updates that produced no changes to be written to the
ndb_apply_status
and
ndb_binlog_index
tables, even when
log_replica_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]
Command-Line Format | --ndb-log-exclusive-reads[={OFF|ON}] |
---|---|
System Variable | ndb_log_exclusive_reads |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | 0 |
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.
Command-Line Format | --ndb-log-fail-terminate |
---|---|
System Variable | ndb_log_fail_terminate |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | FALSE |
When this option is specified, and complete logging of all found row events is not possible, the mysqld process is terminated.
Command-Line Format | --ndb-log-orig[={OFF|ON}] |
---|---|
System Variable | ndb_log_orig |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
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 25.7.4, “NDB Cluster Replication Schema and Tables”.
--ndb-log-transaction-dependency
Command-Line Format | --ndb-log-transaction-dependency={true|false} |
---|---|
System Variable | ndb_log_transaction_dependency |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | false |
Causes the NDB
binary logging thread to
calculate transaction dependencies for each transaction which
it writes to the binary log. The default value is
FALSE
.
This option cannot be set at runtime; the corresponding
ndb_log_transaction_dependency
system
variable is read-only.
Command-Line Format | --ndb-log-transaction-id[={OFF|ON}] |
---|---|
System Variable | ndb_log_transaction_id |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
Causes a replica mysqld to write the NDB
transaction ID in each row of the binary log. The default
value is FALSE
.
--ndb-log-transaction-id
is required to
enable NDB Cluster Replication conflict detection and
resolution using the NDB$EPOCH_TRANS()
function (see
NDB$EPOCH_TRANS()).
For more information, see
Section 25.7.12, “NDB Cluster Replication Conflict Resolution”.
Command-Line Format | --ndb-log-update-as-write[={OFF|ON}] |
---|---|
System Variable | ndb_log_update_as_write |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | ON |
Whether updates on the source are written to the binary log as
updates (OFF
) or writes
(ON
). When this option is enabled, and both
--ndb-log-updated-only
and
--ndb-log-update-minimal
are
disabled, operations of different types are loǵged as
described in the following list:
INSERT
: Logged as a
WRITE_ROW
event with no before image;
the after image is logged with all columns.
UPDATE
: Logged as a
WRITE_ROW
event with no before image;
the after image is logged with all columns.
DELETE
: Logged as a
DELETE_ROW
event with all columns
logged in the before image; the after image is not logged.
This option can be used for NDB Replication conflict resolution in combination with the other two NDB logging options mentioned previously; see ndb_replication Table, for more information.
Command-Line Format | --ndb-log-updated-only[={OFF|ON}] |
---|---|
System Variable | ndb_log_updated_only |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | ON |
Whether mysqld writes updates only
(ON
) or complete rows
(OFF
) to the binary log. When this option
is enabled, and both
--ndb-log-update-as-write
and
--ndb-log-update-minimal
are
disabled, operations of different types are loǵged as
described in the following list:
INSERT
: Logged as a
WRITE_ROW
event with no before image;
the after image is logged with all columns.
UPDATE
: Logged as an
UPDATE_ROW
event with primary key
columns and updated columns present in both the before and
after images.
DELETE
: Logged as a
DELETE_ROW
event with primary key
columns incuded in the before image; the after image is
not logged.
This option can be used for NDB Replication conflict resolution in combination with the other two NDB logging options mentioned previously; see ndb_replication Table, for more information about how these options interact with one another.
Command-Line Format | --ndb-log-update-minimal[={OFF|ON}] |
---|---|
System Variable | ndb_log_update_minimal |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
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
. When this option is enabled, and both
--ndb-log-updated-only
and
--ndb-log-update-as-write
are
disabled, operations of different types are loǵged as
described in the following list:
INSERT
: Logged as a
WRITE_ROW
event with no before image;
the after image is logged with all columns.
UPDATE
: Logged as an
UPDATE_ROW
event with primary key
columns in the before image; all columns
except primary key columns are logged
in the after image.
DELETE
: Logged as a
DELETE_ROW
event with all columns in
the before image; the after image is not logged.
This option can be used for NDB Replication conflict resolution in combination with the other two NDB logging options mentioned previously; see ndb_replication Table, for more information.
--ndb-mgm-tls=[relaxed|strict]
Command-Line Format | --ndb-mgm-tls=[strict|relaxed] |
---|---|
System Variable | ndb_mgm_tls |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Enumeration |
Default Value | relaxed |
Valid Values |
|
Sets the level of TLS support required for TLS connections to
NDB Cluster; the value is one of relaxed
or
strict
. relaxed
means
that a TLS connection is attempted, but success is not
required; strict
means that TLS is required
to connect. The default is relaxed
.
Command-Line Format | --ndb-mgmd-host=host_name[:port_num] |
---|---|
Type | String |
Default Value | localhost:1186 |
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.
Command-Line Format | --ndb-nodeid=# |
---|---|
Status Variable | Ndb_cluster_node_id |
Scope | Global |
Dynamic | No |
Type | Integer |
Default Value | N/A |
Minimum Value | 1 |
Maximum Value | 255 |
Maximum Value | 63 |
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, it 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 25.4.3.7, “Defining SQL and Other API Nodes in an NDB Cluster”.
Command-Line Format | --ndbinfo[=value] |
---|---|
Type | Enumeration |
Default Value | ON |
Valid Values |
|
Enables the plugin for the
ndbinfo
information
database. By default this is ON whenever
NDBCLUSTER
is enabled.
--ndb-optimization-delay=
milliseconds
Command-Line Format | --ndb-optimization-delay=# |
---|---|
System Variable | ndb_optimization_delay |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 10 |
Minimum Value | 0 |
Maximum Value | 100000 |
Unit | milliseconds |
Set the number of milliseconds to wait between sets of rows by
OPTIMIZE TABLE
statements on
NDB
tables. The default is 10.
--ndb-optimized-node-selection
Command-Line Format | --ndb-optimized-node-selection |
---|
Enable optimizations for selection of nodes for transactions.
Enabled by default; use
--skip-ndb-optimized-node-selection
to
disable.
Command-Line Format | --ndb-tls-search-path=path |
---|---|
System Variable | ndb_tls_search_path |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Path name |
Default Value (Unix) | $HOME/tls |
Default Value (Windows) | $HOMEDIR/tls |
List of directories to search for CAs and private keys for NDB TLS connections. The list is comma-delimited on Unix platforms and semicolon-delimited on Windows.
--ndb-transid-mysql-connection-map=
state
Command-Line Format | --ndb-transid-mysql-connection-map[=state] |
---|---|
Type | Enumeration |
Default Value | ON |
Valid Values |
|
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
.
Command-Line Format | --ndb-wait-connected=# |
---|---|
System Variable | ndb_wait_connected |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 120 |
Default Value | 30 |
Minimum Value | 0 |
Maximum Value | 31536000 |
Unit | seconds |
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
.
Command-Line Format | --ndb-wait-setup=# |
---|---|
System Variable | ndb_wait_setup |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 120 |
Default Value | 30 |
Default Value | 15 |
Default Value | 15 |
Minimum Value | 0 |
Maximum Value | 31536000 |
Unit | seconds |
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
.
Command-Line Format | --skip-ndbcluster |
---|
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 25.4.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 7.1.8, “Server System Variables”. For general information
on using system variables, see
Section 7.1.9, “Using System Variables”.
Command-Line Format | --ndb-autoincrement-prefetch-sz=# |
---|---|
System Variable | ndb_autoincrement_prefetch_sz |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 512 |
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 of consecutive
autoincrement numbers being 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
.
Command-Line Format | --ndb-clear-apply-status[={OFF|ON}] |
---|---|
System Variable | ndb_clear_apply_status |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | ON |
By the default, executing RESET
REPLICA
causes an NDB Cluster replica to purge all
rows from its ndb_apply_status
table. You
can disable this by setting
ndb_clear_apply_status=OFF
.
Command-Line Format | --ndb-conflict-role=value |
---|---|
System Variable | ndb_conflict_role |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Enumeration |
Default Value | NONE |
Valid Values |
|
Determines the role of this SQL node (and NDB Cluster) in a
circular (“active-active”) replication setup.
ndb_conflict_role
can take any one of the
values PRIMARY
,
SECONDARY
, PASS
, or
NULL
(the default). The replica SQL thread
must be stopped before you can change
ndb_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_conflict_role = 'NONE'
first.
This variable replaces the deprecated
ndb_slave_conflict_role
.
For more information, see Section 25.7.12, “NDB Cluster Replication Conflict Resolution”.
Command-Line Format | --ndb-data-node-neighbour=# |
---|---|
System Variable | ndb_data_node_neighbour |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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 15.1.22.12, “Setting NDB Comment Options”, for further information.
An equivalent method
set_data_node_neighbour()
is provided for use in NDB API applications.
Command-Line Format | --ndb-dbg-check-shares=# |
---|---|
System Variable | ndb_dbg_check_shares |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 0 |
Minimum Value | 0 |
Maximum Value | 1 |
When set to 1, check that no shares are lingering. Available in debug builds only.
Command-Line Format | --ndb-default-column-format={FIXED|DYNAMIC} |
---|---|
System Variable | ndb_default_column_format |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Enumeration |
Default Value | FIXED |
Valid Values |
|
Sets the default COLUMN_FORMAT
and
ROW_FORMAT
for new tables (see
Section 15.1.22, “CREATE TABLE Statement”). The default is
FIXED
.
Command-Line Format | --ndb-deferred-constraints=# |
---|---|
System Variable | ndb_deferred_constraints |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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.
Command-Line Format | --ndb-distribution={KEYHASH|LINHASH} |
---|---|
System Variable | ndb_distribution |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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.
Command-Line Format | --ndb-eventbuffer-free-percent=# |
---|---|
System Variable | ndb_eventbuffer_free_percent |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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.
Command-Line Format | --ndb-eventbuffer-max-alloc=# |
---|---|
System Variable | ndb_eventbuffer_max_alloc |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 0 |
Minimum Value | 0 |
Maximum Value | 9223372036854775807 |
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.
Command-Line Format | ndb_extra_logging=# |
---|---|
System Variable | ndb_extra_logging |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 1 |
Minimum Value | 0 |
Maximum 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.
Command-Line Format | --ndb-force-send[={OFF|ON}] |
---|---|
System Variable | ndb_force_send |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | ON |
Forces sending of buffers to NDB
immediately, without waiting for other threads. Defaults to
ON
.
Command-Line Format | --ndb-fully-replicated[={OFF|ON}] |
---|---|
System Variable | ndb_fully_replicated |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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 15.1.22.12, “Setting NDB Comment Options”, for syntax
and other information.
Command-Line Format | --ndb-index-stat-enable[={OFF|ON}] |
---|---|
System Variable | ndb_index_stat_enable |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | ON |
Use NDB
index statistics in query
optimization. The default is ON
.
The index statistics tables are always created when the server starts, regardless of this option's value.
Command-Line Format | --ndb-index-stat-option=value |
---|---|
System Variable | ndb_index_stat_option |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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 25.19 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 |
System Variable | ndb_join_pushdown |
---|---|
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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 (for example) a join on an
INT
column and a
BIGINT
column also cannot
be pushed down.
Expressions comparing columns from the same table can also be pushed down. The columns (or the result of any operations on those columns) must be of exactly the same type, including the same signedness, length, character set and collation, precision, and scale, where these are applicable.
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.
Command-Line Format | --ndb-log-apply-status[={OFF|ON}] |
---|---|
System Variable | ndb_log_apply_status |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
A read-only variable which shows whether the server was
started with the
--ndb-log-apply-status
option.
Command-Line Format | --ndb-log-bin[={OFF|ON}] |
---|---|
System Variable | ndb_log_bin |
Scope | Global, Session |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
Causes updates to NDB
tables to be written
to the binary log. The setting for this variable has no effect
if binary logging is not already enabled on the server using
log_bin
.
ndb_log_bin
defaults to 0 (FALSE).
Command-Line Format | --ndb-log-binlog-index[={OFF|ON}] |
---|---|
System Variable | ndb_log_binlog_index |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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.
Command-Line Format | --ndb-log-cache-size=# |
---|---|
System Variable | ndb_log_cache_size |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 64M |
Minimum Value | 4096 |
Maximum Value | 18446744073709551615 |
Set the size of the transaction cache used session for writing
the NDB
binary log.
Command-Line Format | --ndb-log-empty-epochs[={OFF|ON}] |
---|---|
System Variable | ndb_log_empty_epochs |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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
.
Command-Line Format | --ndb-log-empty-update[={OFF|ON}] |
---|---|
System Variable | ndb_log_empty_update |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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_replica_updates
is
enabled.
Command-Line Format | --ndb-log-exclusive-reads[={OFF|ON}] |
---|---|
System Variable | ndb_log_exclusive_reads |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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.
Command-Line Format | --ndb-log-orig[={OFF|ON}] |
---|---|
System Variable | ndb_log_orig |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
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.
System Variable | ndb_log_transaction_id |
---|---|
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
This read-only, Boolean system variable shows whether a
replica 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 9.3.
For more information, see Section 25.7.12, “NDB Cluster Replication Conflict Resolution”.
ndb_log_transaction_compression
Command-Line Format | --ndb-log-transaction-compression |
---|---|
System Variable | ndb_log_transaction_compression |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
Whether a replica mysqld writes compressed
transactions in the binary log; present only if
mysqld was compiled with support for
NDB
.
You should note that starting the MySQL server with
--binlog-transaction-compression
forces this variable to be enabled (ON
),
and that this overrides any setting for
--ndb-log-transaction-compression
made on the
command line or in a my.cnf
file, as
shown here:
$>mysqld_safe --ndbcluster --ndb-connectstring=127.0.0.1
\--binlog-transaction-compression=ON --ndb-log-transaction-compression=OFF &
[1] 27667 $> 2022-07-07T12:29:20.459937Z mysqld_safe Logging to '/usr/local/mysql/data/myhost.err'. 2022-07-07T12:29:20.509873Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data $>mysql -e 'SHOW VARIABLES LIKE "%transaction_compression%"'
+--------------------------------------------+-------+ | Variable_name | Value | +--------------------------------------------+-------+ | binlog_transaction_compression | ON | | binlog_transaction_compression_level_zstd | 3 | | ndb_log_transaction_compression | ON | | ndb_log_transaction_compression_level_zstd | 3 | +--------------------------------------------+-------+
To disable binary log transaction compression for
NDB
tables only, set the
ndb_log_transaction_compression
system
variable to OFF
in a
mysql or other client session after
starting mysqld.
Setting the binlog_transaction_compression
variable after startup has no effect on the value of
ndb_log_transaction_compression
.
For more information on binary log transaction compression, such as which events are or are not compressed and as well as behavior changes to be aware of when this feature is used, see Section 7.4.4.5, “Binary Log Transaction Compression”.
ndb_log_transaction_compression_level_zstd
Command-Line Format | --ndb-log-transaction-compression-level-zstd=# |
---|---|
System Variable | ndb_log_transaction_compression_level_zstd |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 3 |
Minimum Value | 1 |
Maximum Value | 22 |
The ZSTD
compression level used for writing
compressed transactions to the replica's binary log if
enabled by
ndb_log_transaction_compression
.
Not supported if mysqld was not compiled
with support for the NDB
storage engine.
See Section 7.4.4.5, “Binary Log Transaction Compression”, for more information.
Command-Line Format | --ndb-metadata-check[={OFF|ON}] |
---|---|
System Variable | ndb_metadata_check |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | ON |
NDB
uses a background thread to check for
metadata changes each
ndb_metadata_check_interval
seconds as compared with the MySQL data dictionary. This
metadata change detection thread can be disabled by setting
ndb_metadata_check
to
OFF
. The thread is enabled by default.
Command-Line Format | --ndb-metadata-check-interval=# |
---|---|
System Variable | ndb_metadata_check_interval |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 60 |
Minimum Value | 0 |
Maximum Value | 31536000 |
Unit | seconds |
NDB
runs a metadata change detection thread
in the background to determine when the NDB dictionary has
changed with respect to the MySQL data dictionary. By
default,the interval between such checks is 60 seconds; this
can be adjusted by setting the value of
ndb_metadata_check_interval
. To enable or
disable the thread, use
ndb_metadata_check
.
System Variable | ndb_metadata_sync |
---|---|
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | false |
Setting this variable causes the change monitor thread to
override any values set for
ndb_metadata_check
or
ndb_metadata_check_interval
,
and to enter a period of continuous change detection. When the
thread ascertains that there are no more changes to be
detected, it stalls until the binary logging thread has
finished synchronization of all detected objects.
ndb_metadata_sync
is then set to
false
, and the change monitor thread
reverts to the behavior determined by the settings for
ndb_metadata_check
and
ndb_metadata_check_interval
.
Setting this variable to true
causes the
list of excluded objects to be cleared; setting it to
false
clears the list of objects to be
retried.
Command-Line Format | --ndb-optimized-node-selection=# |
---|---|
System Variable | ndb_optimized_node_selection |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
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.
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.
Command-Line Format | --ndb-read-backup[={OFF|ON}] |
---|---|
System Variable | ndb_read_backup |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | ON |
Enable read from any fragment replica for any
NDB
table subsequently created; doing so
greatly improves the table read performance at a relatively
small cost to writes.
If the SQL node and the data node use the same host name or IP
address, this fact is detected automatically, so that the
preference is to send reads to the same host. If these nodes
are on the same host but use different IP addresses, you can
tell the SQL node to use the correct data node by setting the
value of
ndb_data_node_neighbour
on
the SQL node to the node ID of the data node.
To enable or disable read from any fragment replica for an
individual table, you can set the NDB_TABLE
option READ_BACKUP
for the table
accordingly, in a CREATE TABLE
or ALTER TABLE
statement; see
Section 15.1.22.12, “Setting NDB Comment Options”, for more
information.
ndb_recv_thread_activation_threshold
Command-Line Format | --ndb-recv-thread-activation-threshold=# |
---|---|
System Variable | ndb_recv_thread_activation_threshold |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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 at startup.
Command-Line Format | --ndb-recv-thread-cpu-mask=mask |
---|---|
System Variable | ndb_recv_thread_cpu_mask |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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 at startup.
ndb_report_thresh_binlog_epoch_slip
Command-Line Format | --ndb-report-thresh-binlog-epoch-slip=# |
---|---|
System Variable | ndb_report_thresh_binlog_epoch_slip |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 10 |
Minimum Value | 0 |
Maximum Value | 256 |
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 25.6.2.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.
ndb_report_thresh_binlog_mem_usage
Command-Line Format | --ndb-report-thresh-binlog-mem-usage=# |
---|---|
System Variable | ndb_report_thresh_binlog_mem_usage |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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.
System Variable | ndb_row_checksum |
---|---|
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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_schema_dist_lock_wait_timeout
Command-Line Format | --ndb-schema-dist-lock-wait-timeout=value |
---|---|
System Variable | ndb_schema_dist_lock_wait_timeout |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 30 |
Minimum Value | 0 |
Maximum Value | 1200 |
Unit | seconds |
Number of seconds to wait during schema distribution for the metadata lock taken on each SQL node in order to change its local data dictionary to reflect the DDL statement change. After this time has elapsed, a warning is returned to the effect that a given SQL node's data dictionary was not updated with the change. This avoids having the binary logging thread wait an excessive length of time while handling schema operations.
Command-Line Format | --ndb-schema-dist-timeout=value |
---|---|
System Variable | ndb_schema_dist_timeout |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 120 |
Minimum Value | 5 |
Maximum Value | 1200 |
Unit | seconds |
Number of seconds to wait before detecting a timeout during schema distribution. This can indicate that other SQL nodes are experiencing excessive activity, or that they are somehow being prevented from acquiring necessary resources at this time.
ndb_schema_dist_upgrade_allowed
Command-Line Format | --ndb-schema-dist-upgrade-allowed=value |
---|---|
System Variable | ndb_schema_dist_upgrade_allowed |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | true |
Allow upgrading of the schema distribution table when
connecting to NDB
. When true (the default),
this change is deferred until all SQL nodes have been upgraded
to the same version of the NDB Cluster software.
The performance of the schema distribution may be somewhat degraded until the upgrade has been performed.
ndb_show_foreign_key_mock_tables
Command-Line Format | --ndb-show-foreign-key-mock-tables[={OFF|ON}] |
---|---|
System Variable | ndb_show_foreign_key_mock_tables |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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
.
Command-Line Format | --ndb-slave-conflict-role=value |
---|---|
Deprecated | Yes |
System Variable | ndb_slave_conflict_role |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Enumeration |
Default Value | NONE |
Valid Values |
|
Deprecated synonym for
ndb_conflict_role
.
System Variable | ndb_table_no_logging |
---|---|
Scope | Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
When this variable is set to ON
or
1
, it causes all tables created or altered
using ENGINE NDB
to be nonlogging; that is,
no data changes for this table are written to the redo log or
checkpointed to disk, just as if the table had been created or
altered using the NOLOGGING
option for
CREATE TABLE
or
ALTER TABLE
.
For more information about nonlogging NDB
tables, see
NDB_TABLE Options.
ndb_table_no_logging
has no
effect on the creation of NDB
table schema files; to suppress these, use
ndb_table_temporary
instead.
System Variable | ndb_table_temporary |
---|---|
Scope | Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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.
System Variable | ndb_use_copying_alter_table |
---|---|
Scope | Global, Session |
Dynamic | No |
SET_VAR Hint Applies |
No |
Forces NDB
to use copying of
tables in the event of problems with online
ALTER TABLE
operations. The
default value is OFF
.
System Variable | ndb_use_exact_count |
---|---|
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
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.
Command-Line Format | --ndb-use-transactions[={OFF|ON}] |
---|---|
System Variable | ndb_use_transactions |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | ON |
You can disable NDB
transaction support by
setting this variable's value to OFF
.
This is generally not recommended, although it may be useful
to disable transaction support within a given client session
when that session is used to import one or more dump files
with large transactions; this allows a multi-row insert to be
executed in parts, rather than as a single transaction. In
such cases, once the import has been completed, you should
either reset the variable value for this session to
ON
, or simply terminate the session.
System Variable | ndb_version |
---|---|
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | String |
Default Value |
|
NDB
engine version, as a composite integer.
System Variable | ndb_version_string |
---|---|
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | String |
Default Value |
|
NDB
engine version in
ndb-
format.
x.y.z
Command-Line Format | --replica-allow-batching[={OFF|ON}] |
---|---|
System Variable | replica_allow_batching |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | ON |
Whether or not batched updates are enabled on NDB Cluster replicas.
Allowing batched updates on the replica greatly improves
performance, particularly when replicating
TEXT
,
BLOB
, and
JSON
columns. For this reason,
replica_allow_batching
is enabled by
default.
Setting this variable has an effect only when using
replication with the NDB
storage engine; in
MySQL Server 9.3, it is present but does nothing.
For more information, see
Section 25.7.6, “Starting NDB Cluster Replication (Single Replication Channel)”.
Command-Line Format | --ndb-replica-batch-size=# |
---|---|
System Variable | ndb_replica_batch_size |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 2097152 |
Minimum Value | 0 |
Maximum Value | 2147483648 |
Unit | bytes |
Determines the batch size in bytes used by the replication
applier thread. Set this variable rather than the
--ndb-batch-size
option to
apply this setting to the replica, exclusive of any other
sessions.
If this variable is unset (default 2 MB), its effective value
is the greater of the value of
--ndb-batch-size
and 2 MB.
ndb_replica_blob_write_batch_bytes
Command-Line Format | --ndb-replica-blob-write-batch-bytes=# |
---|---|
System Variable | ndb_replica_blob_write_batch_bytes |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 2097152 |
Minimum Value | 0 |
Maximum Value | 2147483648 |
Unit | bytes |
Control the batch write size used for blob data by the replication applier thread.
Use this variable rather than the
--ndb-blob-write-batch-bytes
option to control the blob batch write size on the replica,
exclusive of any other sessions. The reason for this is that,
when
ndb_replica_blob_write_batch_bytes
is not
set,the effective blob batch size (that is, the maximum
number of pending bytes to write for blob columns) is
determined by the greater of the value of
--ndb-blob-write-batch-bytes
and 2 MB (the
default for
ndb_replica_blob_write_batch_bytes
).
Setting ndb_replica_blob_write_batch_bytes
to 0 means that NDB
imposes no limit on the
size of blob batch writes on the replica.
Command-Line Format | --server-id-bits=# |
---|---|
System Variable | server_id_bits |
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 32 |
Minimum Value | 7 |
Maximum Value | 32 |
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 I/O 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 9.3 Server.
Command-Line Format | --slave-allow-batching[={OFF|ON}] |
---|---|
Deprecated | Yes |
System Variable | slave_allow_batching |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | ON |
Deprecated synonym for
replica_allow_batching
.
System Variable | transaction_allow_batching |
---|---|
Scope | Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
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.
System Variable | ndbinfo_database |
---|---|
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | String |
Default Value | ndbinfo |
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.
Command-Line Format | --ndbinfo-max-bytes=# |
---|---|
System Variable | ndbinfo_max_bytes |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 0 |
Minimum Value | 0 |
Maximum Value | 65535 |
Used in testing and debugging only.
Command-Line Format | --ndbinfo-max-rows=# |
---|---|
System Variable | ndbinfo_max_rows |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Integer |
Default Value | 10 |
Minimum Value | 1 |
Maximum Value | 256 |
Used in testing and debugging only.
System Variable | ndbinfo_offline |
---|---|
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
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).
Command-Line Format | --ndbinfo-show-hidden[={OFF|ON}] |
---|---|
System Variable | ndbinfo_show_hidden |
Scope | Global, Session |
Dynamic | Yes |
SET_VAR Hint Applies |
No |
Type | Boolean |
Default Value | OFF |
Valid Values |
|
Whether or not the ndbinfo
database's underlying internal tables are shown in the
mysql client. The default is
OFF
.
When ndbinfo_show_hidden
is enabled, the
internal tables are shown in the ndbinfo
database only; they are not visible in
TABLES
or other
INFORMATION_SCHEMA
tables, regardless of
the variable's setting.
System Variable | ndbinfo_table_prefix |
---|---|
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | String |
Default Value | ndb$ |
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$
; the prefix itself is determined at
compile time.
System Variable | ndbinfo_version |
---|---|
Scope | Global |
Dynamic | No |
SET_VAR Hint Applies |
No |
Type | String |
Default Value |
|
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 7.1.10, “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_adaptive_send_deferred_count
Number of adaptive send calls that were not actually sent.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_adaptive_send_deferred_count_session
Number of adaptive send calls that were not actually sent.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_adaptive_send_deferred_count_replica
Number of adaptive send calls that were not actually sent by this replica.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_adaptive_send_deferred_count_slave
Deprecated synonym for
Ndb_api_adaptive_send_deferred_count_replica
.
Ndb_api_adaptive_send_forced_count
Number of adaptive send calls using forced-send sent by this MySQL Server (SQL node).
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_adaptive_send_forced_count_session
Number of adaptive send calls using forced-send sent in this client session.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_adaptive_send_forced_count_replica
Number of adaptive send calls using forced-send sent by this replica.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_adaptive_send_forced_count_slave
Deprecated synonym for
Ndb_api_adaptive_send_forced_count_replica
.
Ndb_api_adaptive_send_unforced_count
Number of adaptive send calls without forced-send sent by this MySQL server (SQL node).
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_adaptive_send_unforced_count_session
Number of adaptive send calls without forced-send sent in this client session.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_adaptive_send_unforced_count_replica
Number of adaptive send calls without forced-send sent by this replica.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_adaptive_send_unforced_count_slave
Deprecated synonym for
Ndb_api_adaptive_send_unforced_count_replica
.
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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_bytes_sent_count_replica
Amount of data (in bytes) sent to the data nodes by this replica.
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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_bytes_sent_count_slave
Deprecated synonym for
Ndb_api_bytes_sent_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_bytes_received_count_replica
Amount of data (in bytes) received from the data nodes by this replica.
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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_bytes_received_count_slave
Deprecated synonym for
Ndb_api_bytes_received_count_replica
.
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 25.6.16, “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 25.6.16, “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 25.6.16, “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 25.6.16, “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 25.6.16, “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 25.6.16, “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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
The number of operations by this replica 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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Deprecated synonym for
Ndb_api_pk_op_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_pruned_scan_count_replica
The number of scans by this replica 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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_pruned_scan_count_slave
Deprecated synonym for
Ndb_api_pruned_scan_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_range_scan_count_replica
The number of range scans that have been started by this replica.
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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_range_scan_count_slave
Deprecated synonym for
Ndb_api_range_scan_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_read_row_count_replica
The total number of rows that have been read by this replica. This includes all rows read by any primary key, unique key, or scan operation made by this replica.
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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Deprecated synonym for
Ndb_api_read_row_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_scan_batch_count_replica
The number of batches of rows received by this replica. 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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_scan_batch_count_slave
Deprecated synonym for
Ndb_api_scan_batch_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_table_scan_count_replica
The number of table scans that have been started by this replica, 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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_table_scan_count_slave
Deprecated synonym for
Ndb_api_table_scan_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_abort_count_replica
The number of transactions aborted by this replica.
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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_abort_count_slave
Deprecated synonym for
Ndb_api_trans_abort_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_close_count_replica
The number of transactions closed by this replica. This value
may be greater than the sum of
Ndb_api_trans_commit_count_replica
and
Ndb_api_trans_abort_count_replica
,
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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_close_count_slave
Deprecated synonym for
Ndb_api_trans_close_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_commit_count_replica
The number of transactions committed by this replica.
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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_commit_count_slave
Deprecated synonym for
Ndb_api_trans_commit_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_local_read_row_count_replica
The total number of rows that have been read by this replica. This includes all rows read by any primary key, unique key, or scan operation made by this replica.
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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_local_read_row_count_slave
Deprecated synonym for
Ndb_api_trans_local_read_row_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_start_count_replica
The number of transactions started by this replica.
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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_trans_start_count_slave
Deprecated synonym for
Ndb_api_trans_start_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
The number of operations by this replica 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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Deprecated synonym for
Ndb_api_uk_op_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_exec_complete_count_replica
The number of times a thread has been blocked by this replica
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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_exec_complete_count_slave
Deprecated synonym for
Ndb_api_wait_exec_complete_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_meta_request_count_replica
The number of times a thread has been blocked by this replica 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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_meta_request_count_slave
Deprecated synonym for
Ndb_api_wait_meta_request_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_nanos_count_replica
Total time (in nanoseconds) spent by this replica 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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_nanos_count_slave
Deprecated synonym for
Ndb_api_wait_nanos_count_replica
.
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 25.6.16, “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 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_scan_result_count_replica
The number of times a thread has been blocked by this replica 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 replica, or does not use NDB
tables, this value is always 0.
For more information, see Section 25.6.16, “NDB API Statistics Counters and Variables”.
Ndb_api_wait_scan_result_count_slave
Deprecated synonym for
Ndb_api_wait_scan_result_count_replica
.
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 25.6.16, “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 generation number of the cluster's current configuration. This can be used as an indicator to determine whether the configuration of the cluster has changed since this SQL node last connected to the cluster.
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 25.7.12, “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_TRANS()
conflict resolution
on a given mysqld since the last time it
was restarted.
For more information, see Section 25.7.12, “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 source 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_TRANS2()
conflict
resolution on a given mysqld since the last
time it was restarted.
For more information, see NDB$EPOCH2_TRANS().
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 25.7.12, “NDB Cluster Replication Conflict Resolution”.
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 25.7.12, “NDB Cluster Replication Conflict Resolution”.
Ndb_conflict_fn_max_del_win_ins
Shows the number of times that insertion of a row was rejected
on the current SQL node due to NDB Cluster Replication
conflict resolution using
NDB$MAX_DEL_WIN_INS()
, since the last time
that this mysqld was started.
For more information, see Section 25.7.12, “NDB Cluster Replication Conflict Resolution”.
Used in NDB Cluster Replication conflict resolution, this variable shows the number of times that a row was not inserted 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 25.7.12, “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 25.7.12, “NDB Cluster Replication Conflict Resolution”.
Ndb_conflict_last_conflict_epoch
The most recent epoch in which a conflict was detected on this
replica. You can compare this value with
Ndb_replica_max_replicated_epoch
;
if Ndb_replica_max_replicated_epoch
is
greater than
Ndb_conflict_last_conflict_epoch
, no
conflicts have yet been detected.
See Section 25.7.12, “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 25.7.12, “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 25.7.12, “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 25.7.12, “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 25.7.12, “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 25.7.12, “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 25.7.12, “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 25.7.12, “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 25.7.12, “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 25.7.12, “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.
This count is incremented whenever a MySQL Server acting as an NDB CLuster API node fetches table statistics for a given table, rather than using cached statistics.
The epoch most recently committed by NDB
.
The epoch most recently committed by this
NDB
client.
The number of times since this server was last started that the NDB metadata change detection thread has discovered changes with respect to the MySQL data dictionary.
The number of metadata objects that the NDB binlog thread has been unable to synchronize on this SQL node since it was last restarted.
Should an object be excluded, it is not again considered for
automatic synchronization until the user corrects the mismatch
manually. This can be done by attempting to use the table with
a statement such as SHOW CREATE TABLE
, table
SELECT *
FROM
, or any other
statement that would trigger table discovery.
table
The number of NDB metadata objects which have been synchronized on this SQL node since it was last restarted.
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
replica only a single data node.
Ndb_replica_max_replicated_epoch
The most recently committed epoch on this replica. You can
compare this value with
Ndb_conflict_last_conflict_epoch
;
if Ndb_replica_max_replicated_epoch
is the
greater of the two, no conflicts have yet been detected.
For more information, see Section 25.7.12, “NDB Cluster Replication Conflict Resolution”.
This variable holds a count of the total number of scans
executed by NDBCLUSTER
since the
NDB Cluster was last started.
Indicates the number of MySQL servers that are participating in NDB schema change distribution.
Added in NDB 9.3.0.
Ndb_slave_max_replicated_epoch
Deprecated synonym for
Ndb_replica_max_replicated_epoch
.
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.
The number of transactions using hints that have been started
in the current session. Compare with
Ndb_api_trans_start_count_session
to obtain the proportion of all NDB transactions able to use
hints.