#### 23.4.3.9 MySQL Server Options and Variables for NDB Cluster

[]()[]()

 This section provides information about MySQL server options, server and status variables that are specific to NDB Cluster. For general information on using these, and for other options and variables not specific to NDB Cluster, see [Section 5.1, “The MySQL Server”](mysqld-server.html).

 For NDB Cluster configuration parameters used in the cluster configuration file (usually named `config.ini`), see [Section 23.4, “Configuration of NDB Cluster”](mysql-cluster-configuration.html).

##### 23.4.3.9.1 MySQL Server Options for NDB Cluster

[]()[]()[]()[]()[]()

 This section provides descriptions of [**mysqld**](mysqld.html) server options relating to NDB Cluster. For information about [**mysqld**](mysqld.html) options not specific to NDB Cluster, and for general information about the use of options with [**mysqld**](mysqld.html), see [Section 5.1.7, “Server Command Options”](server-options.html).

 For information about command-line options used with other NDB Cluster processes, see [Section 23.5, “NDB Cluster Programs”](mysql-cluster-programs.html).

* []() [`--ndbcluster`](mysql-cluster-options-variables.html#option_mysqld_ndbcluster)

  []()[]()

  |Command-Line Format|`--ndbcluster[=value]`|
  |-------------------|----------------------|
  |    Disabled by    |  `skip-ndbcluster`   |
  |       Type        |     Enumeration      |
  |   Default Value   |         `ON`         |
  |   Valid Values    |`OFF`<br/><br/>`FORCE`|

   The [`NDBCLUSTER`](mysql-cluster.html) storage engine is necessary for using NDB Cluster. If a [**mysqld**](mysqld.html) binary includes support for the [`NDBCLUSTER`](mysql-cluster.html) storage engine, the engine is disabled by default. Use the [`--ndbcluster`](mysql-cluster-options-variables.html#option_mysqld_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`](server-options.html#option_mysqld_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`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                     No                     |
  |                                 Type                                 |                  Boolean                   |
  |                            Default Value                             |                    `ON`                    |

   Let [`ALTER TABLE`](alter-table.html) 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`|
  |----------------------------------------------------------------------|--------------------------------|
  |                              Introduced                              |       8.0.28-ndb-8.0.28        |
  |                           System Variable                            | `ndb_applier_allow_skip_epoch` |
  |                                Scope                                 |             Global             |
  |                               Dynamic                                |               No               |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|               No               |

   Use together with [`--slave-skip-errors`](replication-options-replica.html#option_mysqld_slave-skip-errors) to cause `NDB` to ignore skipped epoch transactions. Has no effect when used alone.

* []() `--ndb-batch-size=*`#`*`

  []()[]()

  |                         Command-Line Format                          |`--ndb-batch-size`|
  |----------------------------------------------------------------------|------------------|
  |                           System Variable                            | `ndb_batch_size` |
  |                                Scope                                 |      Global      |
  |                               Dynamic                                |        No        |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|        No        |
  |                                 Type                                 |     Integer      |
  |                            Default Value                             |     `32768`      |
  |                            Minimum Value                             |       `0`        |
  |                 Maximum Value (≥ 8.0.29-ndb-8.0.29)                  |   `2147483648`   |
  |                            Maximum Value                             |   `2147483648`   |
  |                            Maximum Value                             |   `2147483648`   |
  |                 Maximum Value (≤ 8.0.28-ndb-8.0.28)                  |    `31536000`    |

   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`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|              No               |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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**](mysqld.html) 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**](mysqld.html) 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**](mysqld.html) 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.

  Important

   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**](mysqld.html) 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`](optimizer-hints.html#optimizer-hints-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`](mysql-cluster-options-variables.html#option_mysqld_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`](optimizer-hints.html#optimizer-hints-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`](blob.html) data reads in NDB Cluster applications. When this batch size is exceeded by the amount of [`BLOB`](blob.html) data to be read within the current transaction, any pending [`BLOB`](blob.html) 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`](blob.html) read batching.

  Note

   In NDB API applications, you can control [`BLOB`](blob.html) write batching with the [`setMaxPendingBlobReadBytes()`](https://dev.mysql.com/doc/ndbapi/en/ndb-ndbtransaction.html#ndb-ndbtransaction-setmaxpendingblobreadbytes) and [`getMaxPendingBlobReadBytes()`](https://dev.mysql.com/doc/ndbapi/en/ndb-ndbtransaction.html#ndb-ndbtransaction-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`](optimizer-hints.html#optimizer-hints-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`](blob.html) data writes in NDB Cluster applications. When this batch size is exceeded by the amount of [`BLOB`](blob.html) data to be written within the current transaction, any pending [`BLOB`](blob.html) 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`](blob.html) write batching.

  Note

   In NDB API applications, you can control [`BLOB`](blob.html) write batching with the [`setMaxPendingBlobWriteBytes()`](https://dev.mysql.com/doc/ndbapi/en/ndb-ndbtransaction.html#ndb-ndbtransaction-setmaxpendingblobwritebytes) and [`getMaxPendingBlobWriteBytes()`](https://dev.mysql.com/doc/ndbapi/en/ndb-ndbtransaction.html#ndb-ndbtransaction-getmaxpendingblobwritebytes) methods.

* []() `--ndb-connectstring=*`connection_string`*`

  []()[]()

  |Command-Line Format|`--ndb-connectstring`|
  |-------------------|---------------------|
  |       Type        |       String        |

   When using the [`NDBCLUSTER`](mysql-cluster.html) storage engine, this option specifies the management server that distributes cluster configuration data. See [Section 23.4.3.3, “NDB Cluster Connection Strings”](mysql-cluster-connection-strings.html), for syntax.

* []() `--ndb-default-column-format=[FIXED|DYNAMIC]`

  []()

  |                         Command-Line Format                          |                           `--ndb-default-column-format={FIXED|DYNAMIC}`                            |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_default_column_format](mysql-cluster-options-variables.html#sysvar_ndb_default_column_format)`|
  |                                Scope                                 |                                               Global                                               |
  |                               Dynamic                                |                                                Yes                                                 |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                                 No                                                 |
  |                                 Type                                 |                                            Enumeration                                             |
  |                            Default Value                             |                                              `FIXED`                                               |
  |                             Valid Values                             |                                     `FIXED`<br/><br/>`DYNAMIC`                                     |

   Sets the default `COLUMN_FORMAT` and `ROW_FORMAT` for new tables (see [Section 13.1.20, “CREATE TABLE Statement”](create-table.html)). The default is `FIXED`.

* []() `--ndb-deferred-constraints=[0|1]`

  []()

  |                         Command-Line Format                          |                                   `--ndb-deferred-constraints`                                   |
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_deferred_constraints](mysql-cluster-options-variables.html#sysvar_ndb_deferred_constraints)`|
  |                                Scope                                 |                                         Global, Session                                          |
  |                               Dynamic                                |                                               Yes                                                |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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.

* []() `--ndb-schema-dist-timeout=#`

  []()[]()

  |                         Command-Line Format                          |                                 `--ndb-schema-dist-timeout=#`                                  |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
  |                              Introduced                              |                                       8.0.17-ndb-8.0.17                                        |
  |                           System Variable                            |`[ndb_schema_dist_timeout](mysql-cluster-options-variables.html#sysvar_ndb_schema_dist_timeout)`|
  |                                Scope                                 |                                             Global                                             |
  |                               Dynamic                                |                                               No                                               |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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**](mysqld.html) 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](mysql-cluster-options-variables.html#sysvar_ndb_distribution)`|
  |                                Scope                                 |                                      Global                                      |
  |                               Dynamic                                |                                       Yes                                        |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                        No                                        |
  |                                 Type                                 |                                   Enumeration                                    |
  |                            Default Value                             |                                    `KEYHASH`                                     |
  |                             Valid Values                             |                           `LINHASH`<br/><br/>`KEYHASH`                           |

   Controls the default distribution method for [`NDB`](mysql-cluster.html) tables. Can be set to either of `KEYHASH` (key hashing) or `LINHASH` (linear hashing). `KEYHASH` is the default.

* []() `--ndb-log-apply-status`

  []()[]()

  |                         Command-Line Format                          |                           `--ndb-log-apply-status[={OFF|ON}]`                            |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_apply_status](mysql-cluster-options-variables.html#sysvar_ndb_log_apply_status)`|
  |                                Scope                                 |                                          Global                                          |
  |                               Dynamic                                |                                            No                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                            No                                            |
  |                                 Type                                 |                                         Boolean                                          |
  |                            Default Value                             |                                          `OFF`                                           |

   Causes a replica [**mysqld**](mysqld.html) 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**](mysqld.html).

   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`](mysql-cluster-options-variables.html#option_mysqld_ndbcluster) option.

* []() `--ndb-log-empty-epochs=[ON|OFF]`

  []()[]()

  |                         Command-Line Format                          |                           `--ndb-log-empty-epochs[={OFF|ON}]`                            |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_empty_epochs](mysql-cluster-options-variables.html#sysvar_ndb_log_empty_epochs)`|
  |                                Scope                                 |                                          Global                                          |
  |                               Dynamic                                |                                           Yes                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](replication-options-binary-log.html#sysvar_log_replica_updates) or [`log_slave_updates`](replication-options-binary-log.html#sysvar_log_slave_updates) is enabled.

   By default this option is disabled. Disabling `--ndb-log-empty-epochs` causes epoch transactions with no changes not to be written to the binary log, although a row is still written even for an empty epoch in `ndb_binlog_index`.

   Because `--ndb-log-empty-epochs=1` causes the size of the `ndb_binlog_index` table to increase independently of the size of the binary log, users should be prepared to manage the growth of this table, even if they expect the cluster to be idle a large part of the time.

* []() `--ndb-log-empty-update=[ON|OFF]`

  []()[]()

  |                         Command-Line Format                          |                           `--ndb-log-empty-update[={OFF|ON}]`                            |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_empty_update](mysql-cluster-options-variables.html#sysvar_ndb_log_empty_update)`|
  |                                Scope                                 |                                          Global                                          |
  |                               Dynamic                                |                                           Yes                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](replication-options-binary-log.html#sysvar_log_replica_updates) or [`log_slave_updates`](replication-options-binary-log.html#sysvar_log_slave_updates) is enabled.

   By default this option is disabled (`OFF`). Disabling `--ndb-log-empty-update` causes updates with no changes not to be written to the binary log.

* []() `--ndb-log-exclusive-reads=[0|1]`

  []()[]()

  |                         Command-Line Format                          |                             `--ndb-log-exclusive-reads[={OFF|ON}]`                             |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_exclusive_reads](mysql-cluster-options-variables.html#sysvar_ndb_log_exclusive_reads)`|
  |                                Scope                                 |                                        Global, Session                                         |
  |                               Dynamic                                |                                              Yes                                               |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](mysql-cluster-options-variables.html#sysvar_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](mysql-cluster-replication-conflict-resolution.html#conflict-resolution-read-conflicts).

* []() `--ndb-log-fail-terminate`

  []()[]()

  |                         Command-Line Format                          |`--ndb-log-fail-terminate`|
  |----------------------------------------------------------------------|--------------------------|
  |                              Introduced                              |    8.0.21-ndb-8.0.21     |
  |                           System Variable                            | `ndb_log_fail_terminate` |
  |                                Scope                                 |          Global          |
  |                               Dynamic                                |            No            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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**](mysqld.html) process is terminated.

* []() `--ndb-log-orig`

  []()[]()

  |                         Command-Line Format                          |                       `--ndb-log-orig[={OFF|ON}]`                        |
  |----------------------------------------------------------------------|--------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_orig](mysql-cluster-options-variables.html#sysvar_ndb_log_orig)`|
  |                                Scope                                 |                                  Global                                  |
  |                               Dynamic                                |                                    No                                    |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                    No                                    |
  |                                 Type                                 |                                 Boolean                                  |
  |                            Default Value                             |                                  `OFF`                                   |

   Log the originating server ID and epoch in the `ndb_binlog_index` table.

  Note

   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 23.7.4, “NDB Cluster Replication Schema and Tables”](mysql-cluster-replication-schema.html).

* []() `--ndb-log-transaction-id`

  []()[]()

  |                         Command-Line Format                          |                            `--ndb-log-transaction-id[={OFF|ON}]`                             |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_transaction_id](mysql-cluster-options-variables.html#sysvar_ndb_log_transaction_id)`|
  |                                Scope                                 |                                            Global                                            |
  |                               Dynamic                                |                                              No                                              |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                              No                                              |
  |                                 Type                                 |                                           Boolean                                            |
  |                            Default Value                             |                                            `OFF`                                             |

   Causes a replica [**mysqld**](mysqld.html) to write the NDB transaction ID in each row of the binary log. The default value is `FALSE`.

   This option is not supported in mainline MySQL Server 8.0. It is required to enable NDB Cluster Replication conflict detection and resolution using the `NDB$EPOCH_TRANS()` function (see [NDB$EPOCH\_TRANS()](mysql-cluster-replication-conflict-resolution.html#mysql-cluster-replication-ndb-epoch-trans)). For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

   The deprecated [`log_bin_use_v1_row_events`](replication-options-binary-log.html#sysvar_log_bin_use_v1_row_events) system variable, which defaults to `OFF`, must not be set to `ON` when you use `--ndb-log-transaction-id`.

* []() `--ndb-log-update-as-write`

  []()

  |                         Command-Line Format                          |`--ndb-log-update-as-write[={OFF|ON}]`|
  |----------------------------------------------------------------------|--------------------------------------|
  |                           System Variable                            |      `ndb_log_update_as_write`       |
  |                                Scope                                 |                Global                |
  |                               Dynamic                                |                 Yes                  |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`). Used in NDB Replication conflict resolution; for more information, see [Logging Changed Data as Updates](mysql-cluster-replication-conflict-resolution.html#conflict-resolution-changes-as-updates).

* []() `--ndb-log-updated-only`

  []()

  |                         Command-Line Format                          |`--ndb-log-updated-only[={OFF|ON}]`|
  |----------------------------------------------------------------------|-----------------------------------|
  |                           System Variable                            |      `ndb_log_updated_only`       |
  |                                Scope                                 |              Global               |
  |                               Dynamic                                |                Yes                |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                No                 |
  |                                 Type                                 |              Boolean              |
  |                            Default Value                             |               `ON`                |

   Whether [**mysqld**](mysqld.html) writes complete rows (`ON`) or updates only (`OFF`) to the binary log. Used in NDB Replication conflict resolution; see [Logging Full or Partial Rows](mysql-cluster-replication-conflict-resolution.html#conflict-resolution-full-or-partial), for more information.

* []() `--ndb-log-update-minimal`

  []()

  |                         Command-Line Format                          |`--ndb-log-update-minimal[={OFF|ON}]`|
  |----------------------------------------------------------------------|-------------------------------------|
  |                           System Variable                            |      `ndb_log_update_minimal`       |
  |                                Scope                                 |               Global                |
  |                               Dynamic                                |                 Yes                 |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`.

* []() `--ndb-mgmd-host=*`host`*[:*`port`*]`

  []()

  |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`](mysql-cluster-options-variables.html#option_mysqld_ndb-connectstring) option instead.

* []() `--ndb-nodeid=#`

  []()[]()

  |Command-Line Format|                                    `--ndb-nodeid=#`                                     |
  |-------------------|-----------------------------------------------------------------------------------------|
  |  Status Variable  |`[Ndb_cluster_node_id](mysql-cluster-options-variables.html#statvar_Ndb_cluster_node_id)`|
  |       Scope       |                                         Global                                          |
  |      Dynamic      |                                           No                                            |
  |       Type        |                                         Integer                                         |
  |   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`](mysql-cluster-options-variables.html#option_mysqld_ndb-connectstring), regardless of the order in which the two options are used.

   In addition, if `--ndb-nodeid` is used, then either a matching node ID must be found in a `[mysqld]` or `[api]` section of `config.ini`, or there must be an “open” `[mysqld]` or `[api]` section in the file (that is, a section without a `NodeId` or `Id` parameter specified). This is also true if the node ID is specified as part of the connection string.

   Regardless of how the node ID is determined, its is shown as the value of the global status variable `Ndb_cluster_node_id` in the output of [`SHOW STATUS`](show-status.html), and as `cluster_node_id` in the `connection` row of the output of [`SHOW ENGINE NDBCLUSTER STATUS`](show-engine.html).

   For more information about node IDs for NDB Cluster SQL nodes, see [Section 23.4.3.7, “Defining SQL and Other API Nodes in an NDB Cluster”](mysql-cluster-api-definition.html).

* []() `--ndbinfo={ON|OFF|FORCE}`

  []()[]()

  |Command-Line Format|`--ndbinfo[=value]` (≥ 8.0.13-ndb-8.0.13)|
  |-------------------|-----------------------------------------|
  |    Introduced     |            8.0.13-ndb-8.0.13            |
  |       Type        |               Enumeration               |
  |   Default Value   |                  `ON`                   |
  |   Valid Values    |  `ON`<br/><br/>`OFF`<br/><br/>`FORCE`   |

   Enables the plugin for the [`ndbinfo`](mysql-cluster-ndbinfo.html) 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`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|             No             |
  |                                 Type                                 |          Integer           |
  |                            Default Value                             |            `10`            |
  |                            Minimum Value                             |            `0`             |
  |                            Maximum Value                             |          `100000`          |

   Set the number of milliseconds to wait between sets of rows by [`OPTIMIZE TABLE`](optimize-table.html) statements on [`NDB`](mysql-cluster.html) 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.

* []() `--ndb-transid-mysql-connection-map=*`state`*`

  []()[]()

  |Command-Line Format|`--ndb-transid-mysql-connection-map[=state]`|
  |-------------------|--------------------------------------------|
  |       Type        |                Enumeration                 |
  |   Default Value   |                    `ON`                    |
  |   Valid Values    |    `ON`<br/><br/>`OFF`<br/><br/>`FORCE`    |

   Enables or disables the plugin that handles the [`ndb_transid_mysql_connection_map`](information-schema-ndb-transid-mysql-connection-map-table.html) 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`](information-schema-ndb-transid-mysql-connection-map-table.html) table plugin is running by checking the output of [`SHOW PLUGINS`](show-plugins.html).

* []() `--ndb-wait-connected=*`seconds`*`

  []()[]()

  |                         Command-Line Format                          |`--ndb-wait-connected=#`|
  |----------------------------------------------------------------------|------------------------|
  |                           System Variable                            |  `ndb_wait_connected`  |
  |                                Scope                                 |         Global         |
  |                               Dynamic                                |           No           |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|           No           |
  |                                 Type                                 |        Integer         |
  |                 Default Value (≥ 8.0.27-ndb-8.0.27)                  |         `120`          |
  |                 Default Value (≤ 8.0.26-ndb-8.0.26)                  |          `30`          |
  |                            Default Value                             |          `30`          |
  |                            Minimum Value                             |          `0`           |
  |                            Maximum Value                             |       `31536000`       |

   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`.

* []() `--ndb-wait-setup=*`seconds`*`

  []()[]()

  |                         Command-Line Format                          |`--ndb-wait-setup=#`|
  |----------------------------------------------------------------------|--------------------|
  |                           System Variable                            |  `ndb_wait_setup`  |
  |                                Scope                                 |       Global       |
  |                               Dynamic                                |         No         |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|         No         |
  |                                 Type                                 |      Integer       |
  |                 Default Value (≥ 8.0.27-ndb-8.0.27)                  |       `120`        |
  |                 Default Value (≤ 8.0.26-ndb-8.0.26)                  |        `30`        |
  |                            Default Value                             |        `30`        |
  |                            Default Value                             |        `15`        |
  |                            Default Value                             |        `15`        |
  |                            Minimum Value                             |        `0`         |
  |                            Maximum Value                             |     `31536000`     |

   This variable shows the period of time that the MySQL server waits for the [`NDB`](mysql-cluster.html) storage engine to complete setup before timing out and treating [`NDB`](mysql-cluster.html) as unavailable. The time is specified in seconds. The default value is `30`.

* []() `--skip-ndbcluster`

  []()[]()

  |Command-Line Format|`--skip-ndbcluster`|
  |-------------------|-------------------|

   Disable the [`NDBCLUSTER`](mysql-cluster.html) storage engine. This is the default for binaries that were built with [`NDBCLUSTER`](mysql-cluster.html) storage engine support; the server allocates memory and other resources for this storage engine only if the [`--ndbcluster`](mysql-cluster-options-variables.html#option_mysqld_ndbcluster) option is given explicitly. See [Section 23.4.1, “Quick Test Setup of NDB Cluster”](mysql-cluster-quick.html), for an example.

##### 23.4.3.9.2 NDB Cluster System Variables

 This section provides detailed information about MySQL server system variables that are specific to NDB Cluster and the [`NDB`](mysql-cluster.html) storage engine. For system variables not specific to NDB Cluster, see [Section 5.1.8, “Server System Variables”](server-system-variables.html). For general information on using system variables, see [Section 5.1.9, “Using System Variables”](using-system-variables.html).

* []() [`ndb_autoincrement_prefetch_sz`](mysql-cluster-options-variables.html#sysvar_ndb_autoincrement_prefetch_sz)

  []()[]()

  |                         Command-Line Format                          |                                    `--ndb-autoincrement-prefetch-sz=#`                                     |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_autoincrement_prefetch_sz](mysql-cluster-options-variables.html#sysvar_ndb_autoincrement_prefetch_sz)`|
  |                                Scope                                 |                                              Global, Session                                               |
  |                               Dynamic                                |                                                    Yes                                                     |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                                     No                                                     |
  |                                 Type                                 |                                                  Integer                                                   |
  |                 Default Value (≥ 8.0.19-ndb-8.0.19)                  |                                                   `512`                                                    |
  |                 Default Value (≤ 8.0.18-ndb-8.0.18)                  |                                                    `1`                                                     |
  |                            Minimum Value                             |                                                    `1`                                                     |
  |                            Maximum Value                             |                                                  `65536`                                                   |

   Determines the probability of gaps in an autoincremented column. Set it to `1` to minimize this. Setting it to a high value for optimization makes inserts faster, but decreases the likelihood 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.

  Important

   This variable does not affect inserts performed using [`INSERT ... SELECT`](insert-select.html).

* []() [`ndb_cache_check_time`](mysql-cluster-options-variables.html#sysvar_ndb_cache_check_time)

  []()[]()

  |                         Command-Line Format                          |                                `--ndb-cache-check-time=#`                                |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                              Deprecated                              |                                           Yes                                            |
  |                           System Variable                            |`[ndb_cache_check_time](mysql-cluster-options-variables.html#sysvar_ndb_cache_check_time)`|
  |                                Scope                                 |                                          Global                                          |
  |                               Dynamic                                |                                           Yes                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                            No                                            |
  |                                 Type                                 |                                         Integer                                          |
  |                            Default Value                             |                                           `0`                                            |

   The number of milliseconds that elapse between checks of NDB Cluster SQL nodes by the MySQL query cache. Setting this to 0 (the default and minimum value) means that the query cache checks for validation on every query.

   The recommended maximum value for this variable is 1000, which means that the check is performed once per second. A larger value means that the check is performed and possibly invalidated due to updates on different SQL nodes less often. It is generally not desirable to set this to a value greater than 2000.

  Note

   The query cache [`ndb_cache_check_time`](mysql-cluster-options-variables.html#sysvar_ndb_cache_check_time) are deprecated in MySQL 5.7; the query cache was removed in MySQL 8.0.

* []() [`ndb_clear_apply_status`](mysql-cluster-options-variables.html#sysvar_ndb_clear_apply_status)

  []()[]()

  |                         Command-Line Format                          |                            `--ndb-clear-apply-status[={OFF|ON}]`                             |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_clear_apply_status](mysql-cluster-options-variables.html#sysvar_ndb_clear_apply_status)`|
  |                                Scope                                 |                                            Global                                            |
  |                               Dynamic                                |                                             Yes                                              |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                              No                                              |
  |                                 Type                                 |                                           Boolean                                            |
  |                            Default Value                             |                                             `ON`                                             |

   By the default, executing [`RESET SLAVE`](reset-slave.html) 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`.

* []() [`ndb_conflict_role`](mysql-cluster-options-variables.html#sysvar_ndb_conflict_role)

  []()[]()

  |                         Command-Line Format                          |                            `--ndb-conflict-role=value`                             |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------|
  |                              Introduced                              |                                 8.0.23-ndb-8.0.23                                  |
  |                           System Variable                            |`[ndb_conflict_role](mysql-cluster-options-variables.html#sysvar_ndb_conflict_role)`|
  |                                Scope                                 |                                       Global                                       |
  |                               Dynamic                                |                                        Yes                                         |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                         No                                         |
  |                                 Type                                 |                                    Enumeration                                     |
  |                            Default Value                             |                                       `NONE`                                       |
  |                             Valid Values                             |           `NONE`<br/><br/>`PRIMARY`<br/><br/>`SECONDARY`<br/><br/>`PASS`           |

   Determines the role of this SQL node (and NDB Cluster) in a circular (“active-active”) replication setup. `ndb_slave_conflict_role` can take any one of the values `PRIMARY`, `SECONDARY`, `PASS`, or `NULL` (the default). The replica SQL thread must be stopped before you can change `ndb_slave_conflict_role`. In addition, it is not possible to change directly between `PASS` and either of `PRIMARY` or `SECONDARY` directly; in such cases, you must ensure that the SQL thread is stopped, then execute [`SET @@GLOBAL.ndb_slave_conflict_role = 'NONE'`](set-statement.html) first.

   This variable replaces [`ndb_slave_conflict_role`](mysql-cluster-options-variables.html#sysvar_ndb_slave_conflict_role), which is deprecated as of NDB 8.0.23.

   For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`ndb_data_node_neighbour`](mysql-cluster-options-variables.html#sysvar_ndb_data_node_neighbour)

  []()[]()

  |                         Command-Line Format                          |                                 `--ndb-data-node-neighbour=#`                                  |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_data_node_neighbour](mysql-cluster-options-variables.html#sysvar_ndb_data_node_neighbour)`|
  |                                Scope                                 |                                             Global                                             |
  |                               Dynamic                                |                                              Yes                                               |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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 13.1.20.11, “Setting NDB Comment Options”](create-table-ndb-comment-options.html), for further information.

  Note

   An equivalent method [`set_data_node_neighbour()`](https://dev.mysql.com/doc/ndbapi/en/ndb-ndb-cluster-connection.html#ndb-ndb-cluster-connection-set-data-node-neighbour) is provided for use in NDB API applications.

* []() [`ndb_dbg_check_shares`](mysql-cluster-options-variables.html#sysvar_ndb_dbg_check_shares)

  []()[]()

  |                         Command-Line Format                          |                                `--ndb-dbg-check-shares=#`                                |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                              Introduced                              |                                    8.0.13-ndb-8.0.13                                     |
  |                           System Variable                            |`[ndb_dbg_check_shares](mysql-cluster-options-variables.html#sysvar_ndb_dbg_check_shares)`|
  |                                Scope                                 |                                     Global, Session                                      |
  |                               Dynamic                                |                                           Yes                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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.

* []() [`ndb_default_column_format`](mysql-cluster-options-variables.html#sysvar_ndb_default_column_format)

  []()[]()

  |                         Command-Line Format                          |                           `--ndb-default-column-format={FIXED|DYNAMIC}`                            |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_default_column_format](mysql-cluster-options-variables.html#sysvar_ndb_default_column_format)`|
  |                                Scope                                 |                                               Global                                               |
  |                               Dynamic                                |                                                Yes                                                 |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                                 No                                                 |
  |                                 Type                                 |                                            Enumeration                                             |
  |                            Default Value                             |                                              `FIXED`                                               |
  |                             Valid Values                             |                                     `FIXED`<br/><br/>`DYNAMIC`                                     |

   Sets the default `COLUMN_FORMAT` and `ROW_FORMAT` for new tables (see [Section 13.1.20, “CREATE TABLE Statement”](create-table.html)). The default is `FIXED`.

* []() [`ndb_deferred_constraints`](mysql-cluster-options-variables.html#sysvar_ndb_deferred_constraints)

  []()[]()

  |                         Command-Line Format                          |                                  `--ndb-deferred-constraints=#`                                  |
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_deferred_constraints](mysql-cluster-options-variables.html#sysvar_ndb_deferred_constraints)`|
  |                                Scope                                 |                                         Global, Session                                          |
  |                               Dynamic                                |                                               Yes                                                |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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.

* []() [`ndb_distribution`](mysql-cluster-options-variables.html#sysvar_ndb_distribution)

  []()[]()

  |                         Command-Line Format                          |                      `--ndb-distribution={KEYHASH|LINHASH}`                      |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_distribution](mysql-cluster-options-variables.html#sysvar_ndb_distribution)`|
  |                                Scope                                 |                                      Global                                      |
  |                               Dynamic                                |                                       Yes                                        |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                        No                                        |
  |                                 Type                                 |                                   Enumeration                                    |
  |                            Default Value                             |                                    `KEYHASH`                                     |
  |                             Valid Values                             |                           `LINHASH`<br/><br/>`KEYHASH`                           |

   Controls the default distribution method for [`NDB`](mysql-cluster.html) tables. Can be set to either of `KEYHASH` (key hashing) or `LINHASH` (linear hashing). `KEYHASH` is the default.

* []() [`ndb_eventbuffer_free_percent`](mysql-cluster-options-variables.html#sysvar_ndb_eventbuffer_free_percent)

  []()[]()

  |                         Command-Line Format                          |                                    `--ndb-eventbuffer-free-percent=#`                                    |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_eventbuffer_free_percent](mysql-cluster-options-variables.html#sysvar_ndb_eventbuffer_free_percent)`|
  |                                Scope                                 |                                                  Global                                                  |
  |                               Dynamic                                |                                                   Yes                                                    |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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.

* []() [`ndb_eventbuffer_max_alloc`](mysql-cluster-options-variables.html#sysvar_ndb_eventbuffer_max_alloc)

  []()[]()

  |                         Command-Line Format                          |                                  `--ndb-eventbuffer-max-alloc=#`                                   |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_eventbuffer_max_alloc](mysql-cluster-options-variables.html#sysvar_ndb_eventbuffer_max_alloc)`|
  |                                Scope                                 |                                               Global                                               |
  |                               Dynamic                                |                                                Yes                                                 |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                                 No                                                 |
  |                                 Type                                 |                                              Integer                                               |
  |                            Default Value                             |                                                `0`                                                 |
  |                            Minimum Value                             |                                                `0`                                                 |
  |                 Maximum Value (≥ 8.0.26-ndb-8.0.26)                  |                                       `9223372036854775807`                                        |
  |                            Maximum Value                             |                                       `9223372036854775807`                                        |
  |                            Maximum Value                             |                                       `9223372036854775807`                                        |
  |                 Maximum Value (≤ 8.0.25-ndb-8.0.25)                  |                                            `4294967295`                                            |

   Sets the maximum amount memory (in bytes) that can be allocated for buffering events by the NDB API. 0 means that no limit is imposed, and is the default.

* []() [`ndb_extra_logging`](mysql-cluster-options-variables.html#sysvar_ndb_extra_logging)

  []()[]()

  |                         Command-Line Format                          |                               `ndb_extra_logging=#`                                |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_extra_logging](mysql-cluster-options-variables.html#sysvar_ndb_extra_logging)`|
  |                                Scope                                 |                                       Global                                       |
  |                               Dynamic                                |                                        Yes                                         |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                         No                                         |
  |                                 Type                                 |                                      Integer                                       |
  |                            Default Value                             |                                        `1`                                         |

   This variable enables recording in the MySQL error log of information specific to the [`NDB`](mysql-cluster.html) 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.

* []() [`ndb_force_send`](mysql-cluster-options-variables.html#sysvar_ndb_force_send)

  []()[]()

  |                         Command-Line Format                          |                        `--ndb-force-send[={OFF|ON}]`                         |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_force_send](mysql-cluster-options-variables.html#sysvar_ndb_force_send)`|
  |                                Scope                                 |                               Global, Session                                |
  |                               Dynamic                                |                                     Yes                                      |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                      No                                      |
  |                                 Type                                 |                                   Boolean                                    |
  |                            Default Value                             |                                     `ON`                                     |

   Forces sending of buffers to [`NDB`](mysql-cluster.html) immediately, without waiting for other threads. Defaults to `ON`.

* []() [`ndb_fully_replicated`](mysql-cluster-options-variables.html#sysvar_ndb_fully_replicated)

  []()[]()

  |                         Command-Line Format                          |                           `--ndb-fully-replicated[={OFF|ON}]`                            |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_fully_replicated](mysql-cluster-options-variables.html#sysvar_ndb_fully_replicated)`|
  |                                Scope                                 |                                     Global, Session                                      |
  |                               Dynamic                                |                                           Yes                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](create-table.html) or [`ALTER TABLE`](alter-table.html) statement; see [Section 13.1.20.11, “Setting NDB Comment Options”](create-table-ndb-comment-options.html), for syntax and other information.

* []() [`ndb_index_stat_enable`](mysql-cluster-options-variables.html#sysvar_ndb_index_stat_enable)

  []()[]()

  |                         Command-Line Format                          |                            `--ndb-index-stat-enable[={OFF|ON}]`                            |
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_index_stat_enable](mysql-cluster-options-variables.html#sysvar_ndb_index_stat_enable)`|
  |                                Scope                                 |                                      Global, Session                                       |
  |                               Dynamic                                |                                            Yes                                             |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                             No                                             |
  |                                 Type                                 |                                          Boolean                                           |
  |                            Default Value                             |                                            `ON`                                            |

   Use [`NDB`](mysql-cluster.html) index statistics in query optimization. The default is `ON`.

   Prior to NDB 8.0.27, starting the server with `--ndb-index-stat-enable` set to `OFF` prevented the creation of the index statistics tables. In NDB 8.0.27 and later, these tables are always created when the server starts, regardless of this option's value.

* []() [`ndb_index_stat_option`](mysql-cluster-options-variables.html#sysvar_ndb_index_stat_option)

  []()[]()

  |                         Command-Line Format                          |                                                                                                             `--ndb-index-stat-option=value`                                                                                                             |
  |----------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  |                           System Variable                            |                                                                              `[ndb_index_stat_option](mysql-cluster-options-variables.html#sysvar_ndb_index_stat_option)`                                                                               |
  |                                Scope                                 |                                                                                                                     Global, Session                                                                                                                     |
  |                               Dynamic                                |                                                                                                                           Yes                                                                                                                           |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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 23.20 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**](mysqld.html); 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      |

* []() [`ndb_join_pushdown`](mysql-cluster-options-variables.html#sysvar_ndb_join_pushdown)

  []()[]()[]()[]()

  |                           System Variable                            |`[ndb_join_pushdown](mysql-cluster-options-variables.html#sysvar_ndb_join_pushdown)`|
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------|
  |                                Scope                                 |                                  Global, Session                                   |
  |                               Dynamic                                |                                        Yes                                         |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                         No                                         |
  |                                 Type                                 |                                      Boolean                                       |
  |                            Default Value                             |                                        `ON`                                        |

   This variable controls whether joins on [`NDB`](mysql-cluster.html) tables are pushed down to the NDB kernel (data nodes). Previously, a join was handled using multiple accesses of [`NDB`](mysql-cluster.html) by the SQL node; however, when [`ndb_join_pushdown`](mysql-cluster-options-variables.html#sysvar_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**](mysqld.html). 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`](mysql-cluster-options-variables.html#sysvar_ndb_join_pushdown) is enabled.

  []()**Conditions for NDB pushdown joins.**  In order for a join to be pushable, it must meet the following conditions:

  1. 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`](integer-types.html) column and a [`BIGINT`](integer-types.html) column also cannot be pushed down.

      Previously, expressions such as `t1.a = t2.a + *`constant`*` could not be pushed down. This restriction is lifted in NDB 8.0. The result of any operations on any column to be compared must yield the same type as the column itself.

      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.

  2. Queries referencing [`BLOB`](blob.html) or [`TEXT`](blob.html) columns are not supported.

  3. Explicit locking is not supported; however, the [`NDB`](mysql-cluster.html) storage engine's characteristic implicit row-based locking is enforced.

      This means that a join using `FOR UPDATE` cannot be pushed down.

  4. In order for a join to be pushed down, child tables in the join must be accessed using one of the [`ref`](explain-output.html#jointype_ref), [`eq_ref`](explain-output.html#jointype_eq_ref), or [`const`](explain-output.html#jointype_const) access methods, or some combination of these methods.

      Outer joined child tables can only be pushed using [`eq_ref`](explain-output.html#jointype_eq_ref).

      If the root of the pushed join is an [`eq_ref`](explain-output.html#jointype_eq_ref) or [`const`](explain-output.html#jointype_const), only child tables joined by [`eq_ref`](explain-output.html#jointype_eq_ref) can be appended. (A table joined by [`ref`](explain-output.html#jointype_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.

  5. 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`](explain.html); 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)
  ```

  Note

   If inner joined child tables are joined by [`ref`](explain-output.html#jointype_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:

  1. The status variables [`Ndb_pushed_queries_defined`](mysql-cluster-options-variables.html#statvar_Ndb_pushed_queries_defined), [`Ndb_pushed_queries_dropped`](mysql-cluster-options-variables.html#statvar_Ndb_pushed_queries_dropped), [`Ndb_pushed_queries_executed`](mysql-cluster-options-variables.html#statvar_Ndb_pushed_queries_executed), and [`Ndb_pushed_reads`](mysql-cluster-options-variables.html#statvar_Ndb_pushed_reads).

  2. The counters in the [`ndbinfo.counters`](mysql-cluster-ndbinfo-counters.html) table that belong to the [`DBSPJ`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dbspj.html) kernel block.

* []() [`ndb_log_apply_status`](mysql-cluster-options-variables.html#sysvar_ndb_log_apply_status)

  []()[]()

  |                         Command-Line Format                          |                           `--ndb-log-apply-status[={OFF|ON}]`                            |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_apply_status](mysql-cluster-options-variables.html#sysvar_ndb_log_apply_status)`|
  |                                Scope                                 |                                          Global                                          |
  |                               Dynamic                                |                                            No                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](mysql-cluster-options-variables.html#option_mysqld_ndb-log-apply-status) option.

* []() [`ndb_log_bin`](mysql-cluster-options-variables.html#sysvar_ndb_log_bin)

  []()[]()

  |                         Command-Line Format                          |                       `--ndb-log-bin[={OFF|ON}]`                       |
  |----------------------------------------------------------------------|------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_bin](mysql-cluster-options-variables.html#sysvar_ndb_log_bin)`|
  |                                Scope                                 |                            Global, Session                             |
  |                               Dynamic                                |                                   No                                   |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                   No                                   |
  |                                 Type                                 |                                Boolean                                 |
  |                 Default Value (≥ 8.0.16-ndb-8.0.16)                  |                                 `OFF`                                  |
  |                 Default Value (≤ 8.0.15-ndb-8.0.15)                  |                                  `ON`                                  |

   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`](replication-options-binary-log.html#sysvar_log_bin). In NDB 8.0, `ndb_log_bin` defaults to 0 (FALSE).

* []() [`ndb_log_binlog_index`](mysql-cluster-options-variables.html#sysvar_ndb_log_binlog_index)

  []()[]()

  |                         Command-Line Format                          |                           `--ndb-log-binlog-index[={OFF|ON}]`                            |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_binlog_index](mysql-cluster-options-variables.html#sysvar_ndb_log_binlog_index)`|
  |                                Scope                                 |                                          Global                                          |
  |                               Dynamic                                |                                           Yes                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](replication-options-binary-log.html#sysvar_log_bin). (In addition, [`ndb_log_bin`](mysql-cluster-options-variables.html#sysvar_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.

* []() [`ndb_log_empty_epochs`](mysql-cluster-options-variables.html#sysvar_ndb_log_empty_epochs)

  []()[]()

  |                         Command-Line Format                          |                           `--ndb-log-empty-epochs[={OFF|ON}]`                            |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_empty_epochs](mysql-cluster-options-variables.html#sysvar_ndb_log_empty_epochs)`|
  |                                Scope                                 |                                          Global                                          |
  |                               Dynamic                                |                                           Yes                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`.

* []() [`ndb_log_empty_update`](mysql-cluster-options-variables.html#sysvar_ndb_log_empty_update)

  []()[]()

  |                         Command-Line Format                          |                           `--ndb-log-empty-update[={OFF|ON}]`                            |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_empty_update](mysql-cluster-options-variables.html#sysvar_ndb_log_empty_update)`|
  |                                Scope                                 |                                          Global                                          |
  |                               Dynamic                                |                                           Yes                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](replication-options-binary-log.html#sysvar_log_replica_updates) or [`log_slave_updates`](replication-options-binary-log.html#sysvar_log_slave_updates) is enabled.

* []() [`ndb_log_exclusive_reads`](mysql-cluster-options-variables.html#sysvar_ndb_log_exclusive_reads)

  []()[]()

  |                         Command-Line Format                          |                             `--ndb-log-exclusive-reads[={OFF|ON}]`                             |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_exclusive_reads](mysql-cluster-options-variables.html#sysvar_ndb_log_exclusive_reads)`|
  |                                Scope                                 |                                        Global, Session                                         |
  |                               Dynamic                                |                                              Yes                                               |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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](mysql-cluster-replication-conflict-resolution.html#conflict-resolution-read-conflicts).

* []() [`ndb_log_orig`](mysql-cluster-options-variables.html#sysvar_ndb_log_orig)

  []()[]()

  |                         Command-Line Format                          |                       `--ndb-log-orig[={OFF|ON}]`                        |
  |----------------------------------------------------------------------|--------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_log_orig](mysql-cluster-options-variables.html#sysvar_ndb_log_orig)`|
  |                                Scope                                 |                                  Global                                  |
  |                               Dynamic                                |                                    No                                    |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](mysql-cluster-options-variables.html#option_mysqld_ndb-log-orig) server option.

* []() [`ndb_log_transaction_id`](mysql-cluster-options-variables.html#sysvar_ndb_log_transaction_id)

  []()[]()

  |                           System Variable                            |`[ndb_log_transaction_id](mysql-cluster-options-variables.html#sysvar_ndb_log_transaction_id)`|
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
  |                                Scope                                 |                                            Global                                            |
  |                               Dynamic                                |                                              No                                              |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                              No                                              |
  |                                 Type                                 |                                           Boolean                                            |
  |                            Default Value                             |                                            `OFF`                                             |

   This read-only, Boolean system variable shows whether a replica [**mysqld**](mysqld.html) 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`](mysql-cluster-options-variables.html#option_mysqld_ndb-log-transaction-id) option.

  [`ndb_log_transaction_id`](mysql-cluster-options-variables.html#sysvar_ndb_log_transaction_id) is not supported in mainline MySQL Server 8.0.

   For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`ndb_metadata_check`](mysql-cluster-options-variables.html#sysvar_ndb_metadata_check)

  []()[]()

  |                         Command-Line Format                          |                          `--ndb-metadata-check[={OFF|ON}]`                           |
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------------|
  |                              Introduced                              |                                  8.0.16-ndb-8.0.16                                   |
  |                           System Variable                            |`[ndb_metadata_check](mysql-cluster-options-variables.html#sysvar_ndb_metadata_check)`|
  |                                Scope                                 |                                        Global                                        |
  |                               Dynamic                                |                                         Yes                                          |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](mysql-cluster-options-variables.html#sysvar_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.

* []() [`ndb_metadata_check_interval`](mysql-cluster-options-variables.html#sysvar_ndb_metadata_check_interval)

  []()[]()

  |                         Command-Line Format                          |                                   `--ndb-metadata-check-interval=#`                                    |
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
  |                              Introduced                              |                                           8.0.16-ndb-8.0.16                                            |
  |                           System Variable                            |`[ndb_metadata_check_interval](mysql-cluster-options-variables.html#sysvar_ndb_metadata_check_interval)`|
  |                                Scope                                 |                                                 Global                                                 |
  |                               Dynamic                                |                                                  Yes                                                   |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](mysql-cluster-options-variables.html#sysvar_ndb_metadata_check).

* []() [`ndb_metadata_sync`](mysql-cluster-options-variables.html#sysvar_ndb_metadata_sync)

  []()[]()

  |                              Introduced                              |                                 8.0.19-ndb-8.0.19                                  |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_metadata_sync](mysql-cluster-options-variables.html#sysvar_ndb_metadata_sync)`|
  |                                Scope                                 |                                       Global                                       |
  |                               Dynamic                                |                                        Yes                                         |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](mysql-cluster-options-variables.html#sysvar_ndb_metadata_check) or [`ndb_metadata_check_interval`](mysql-cluster-options-variables.html#sysvar_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`.

   In NDB 8.0.22 and later, setting this variable to `true` causes the list of excluded objects to be cleared, and setting it to `false` clears the list of objects to be retried.

* []() [`ndb_optimized_node_selection`](mysql-cluster-options-variables.html#sysvar_ndb_optimized_node_selection)

  []()[]()

  |                         Command-Line Format                          |                                    `--ndb-optimized-node-selection=#`                                    |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_optimized_node_selection](mysql-cluster-options-variables.html#sysvar_ndb_optimized_node_selection)`|
  |                                Scope                                 |                                                  Global                                                  |
  |                               Dynamic                                |                                                    No                                                    |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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:

  1. 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`.

  2. 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:

  1. Start with the value set for the [`Group`](mysql-cluster-tcp-definition.html#ndbparam-tcp-group) parameter (default 55).

  2. 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.

  3. Setting [`ndb_data_node_neighbour`](mysql-cluster-options-variables.html#sysvar_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.

* []() [`ndb_read_backup`](mysql-cluster-options-variables.html#sysvar_ndb_read_backup)

  []()[]()

  |                         Command-Line Format                          |                         `--ndb-read-backup[={OFF|ON}]`                         |
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_read_backup](mysql-cluster-options-variables.html#sysvar_ndb_read_backup)`|
  |                                Scope                                 |                                     Global                                     |
  |                               Dynamic                                |                                      Yes                                       |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                       No                                       |
  |                                 Type                                 |                                    Boolean                                     |
  |                 Default Value (≥ 8.0.19-ndb-8.0.19)                  |                                      `ON`                                      |
  |                 Default Value (≤ 8.0.18-ndb-8.0.18)                  |                                     `OFF`                                      |

   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`](mysql-cluster-options-variables.html#sysvar_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`](create-table.html) or [`ALTER TABLE`](alter-table.html) statement; see [Section 13.1.20.11, “Setting NDB Comment Options”](create-table-ndb-comment-options.html), for more information.

* []() [`ndb_recv_thread_activation_threshold`](mysql-cluster-options-variables.html#sysvar_ndb_recv_thread_activation_threshold)

  []()[]()

  |                         Command-Line Format                          |                                        `--ndb-recv-thread-activation-threshold=#`                                        |
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_recv_thread_activation_threshold](mysql-cluster-options-variables.html#sysvar_ndb_recv_thread_activation_threshold)`|
  |                                Scope                                 |                                                          Global                                                          |
  |                               Dynamic                                |                                                           Yes                                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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.

* []() [`ndb_recv_thread_cpu_mask`](mysql-cluster-options-variables.html#sysvar_ndb_recv_thread_cpu_mask)

  []()[]()

  |                         Command-Line Format                          |                                `--ndb-recv-thread-cpu-mask=mask`                                 |
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_recv_thread_cpu_mask](mysql-cluster-options-variables.html#sysvar_ndb_recv_thread_cpu_mask)`|
  |                                Scope                                 |                                              Global                                              |
  |                               Dynamic                                |                                               Yes                                                |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](mysql-cluster-options-variables.html#sysvar_ndb_report_thresh_binlog_epoch_slip)

  []()[]()

  |                         Command-Line Format                          |                                       `--ndb-report-thresh-binlog-epoch-slip=#`                                        |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_report_thresh_binlog_epoch_slip](mysql-cluster-options-variables.html#sysvar_ndb_report_thresh_binlog_epoch_slip)`|
  |                                Scope                                 |                                                         Global                                                         |
  |                               Dynamic                                |                                                          Yes                                                           |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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 23.6.2.3, “Event Buffer Reporting in the Cluster Log”](mysql-cluster-logs-event-buffer.html)). 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()`](https://dev.mysql.com/doc/ndbapi/en/ndb-ndb.html#ndb-ndb-seteventbufferqueueemptyepoch) method from the NDB API.

* []() [`ndb_report_thresh_binlog_mem_usage`](mysql-cluster-options-variables.html#sysvar_ndb_report_thresh_binlog_mem_usage)

  []()[]()

  |                         Command-Line Format                          |                                       `--ndb-report-thresh-binlog-mem-usage=#`                                       |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_report_thresh_binlog_mem_usage](mysql-cluster-options-variables.html#sysvar_ndb_report_thresh_binlog_mem_usage)`|
  |                                Scope                                 |                                                        Global                                                        |
  |                               Dynamic                                |                                                         Yes                                                          |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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.

* []() [`ndb_row_checksum`](mysql-cluster-options-variables.html#sysvar_ndb_row_checksum)

  []()[]()

  |                           System Variable                            |`[ndb_row_checksum](mysql-cluster-options-variables.html#sysvar_ndb_row_checksum)`|
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------|
  |                                Scope                                 |                                 Global, Session                                  |
  |                               Dynamic                                |                                       Yes                                        |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](mysql-cluster-options-variables.html#sysvar_ndb_schema_dist_lock_wait_timeout)

  []()[]()

  |                         Command-Line Format                          |                                    `--ndb-schema-dist-lock-wait-timeout=value`                                     |
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|
  |                              Introduced                              |                                                 8.0.18-ndb-8.0.18                                                  |
  |                           System Variable                            |`[ndb_schema_dist_lock_wait_timeout](mysql-cluster-options-variables.html#sysvar_ndb_schema_dist_lock_wait_timeout)`|
  |                                Scope                                 |                                                       Global                                                       |
  |                               Dynamic                                |                                                        Yes                                                         |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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.

* []() [`ndb_schema_dist_timeout`](mysql-cluster-options-variables.html#sysvar_ndb_schema_dist_timeout)

  []()[]()

  |                         Command-Line Format                          |                               `--ndb-schema-dist-timeout=value`                                |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
  |                              Introduced                              |                                       8.0.16-ndb-8.0.16                                        |
  |                           System Variable                            |`[ndb_schema_dist_timeout](mysql-cluster-options-variables.html#sysvar_ndb_schema_dist_timeout)`|
  |                                Scope                                 |                                             Global                                             |
  |                               Dynamic                                |                                               No                                               |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](mysql-cluster-options-variables.html#sysvar_ndb_schema_dist_upgrade_allowed)

  []()[]()

  |                         Command-Line Format                          |                                   `--ndb-schema-dist-upgrade-allowed=value`                                    |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------|
  |                              Introduced                              |                                               8.0.17-ndb-8.0.17                                                |
  |                           System Variable                            |`[ndb_schema_dist_upgrade_allowed](mysql-cluster-options-variables.html#sysvar_ndb_schema_dist_upgrade_allowed)`|
  |                                Scope                                 |                                                     Global                                                     |
  |                               Dynamic                                |                                                       No                                                       |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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.

  Note

   The performance of the schema distribution may be somewhat degraded until the upgrade has been performed.

* []() [`ndb_show_foreign_key_mock_tables`](mysql-cluster-options-variables.html#sysvar_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](mysql-cluster-options-variables.html#sysvar_ndb_show_foreign_key_mock_tables)`|
  |                                Scope                                 |                                                      Global                                                      |
  |                               Dynamic                                |                                                       Yes                                                        |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                                        No                                                        |
  |                                 Type                                 |                                                     Boolean                                                      |
  |                            Default Value                             |                                                      `OFF`                                                       |

   Show the mock tables used by `NDB` to support [`foreign_key_checks=0`](server-system-variables.html#sysvar_foreign_key_checks). 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`](show-create-table.html).

* []() [`ndb_slave_conflict_role`](mysql-cluster-options-variables.html#sysvar_ndb_slave_conflict_role)

  []()[]()

  |                         Command-Line Format                          |                               `--ndb-slave-conflict-role=value`                                |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
  |                              Deprecated                              |                                       8.0.23-ndb-8.0.23                                        |
  |                           System Variable                            |`[ndb_slave_conflict_role](mysql-cluster-options-variables.html#sysvar_ndb_slave_conflict_role)`|
  |                                Scope                                 |                                             Global                                             |
  |                               Dynamic                                |                                              Yes                                               |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                               No                                               |
  |                                 Type                                 |                                          Enumeration                                           |
  |                            Default Value                             |                                             `NONE`                                             |
  |                             Valid Values                             |                 `NONE`<br/><br/>`PRIMARY`<br/><br/>`SECONDARY`<br/><br/>`PASS`                 |

   Deprecated in NDB 8.0.23, and subject to removal in a future release. Use [`ndb_conflict_role`](mysql-cluster-options-variables.html#sysvar_ndb_conflict_role) instead.

* []() [`ndb_table_no_logging`](mysql-cluster-options-variables.html#sysvar_ndb_table_no_logging)

  []()[]()

  |                           System Variable                            |`[ndb_table_no_logging](mysql-cluster-options-variables.html#sysvar_ndb_table_no_logging)`|
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                                Scope                                 |                                         Session                                          |
  |                               Dynamic                                |                                           Yes                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                            No                                            |
  |                                 Type                                 |                                         Boolean                                          |
  |                            Default Value                             |                                          `OFF`                                           |

   When this variable is set to `ON` or `1`, it causes [`NDB`](mysql-cluster.html) tables not to be checkpointed to disk. More specifically, this setting applies to tables which are created or altered using `ENGINE NDB` when [`ndb_table_no_logging`](mysql-cluster-options-variables.html#sysvar_ndb_table_no_logging) is enabled, and continues to apply for the lifetime of the table, even if [`ndb_table_no_logging`](mysql-cluster-options-variables.html#sysvar_ndb_table_no_logging) is later changed. Suppose that `A`, `B`, `C`, and `D` are tables that we create (and perhaps also alter), and that we also change the setting for [`ndb_table_no_logging`](mysql-cluster-options-variables.html#sysvar_ndb_table_no_logging) as shown here:

  ```
  SET @@ndb_table_no_logging = 1;

  CREATE TABLE A ... ENGINE NDB;

  CREATE TABLE B ... ENGINE MYISAM;
  CREATE TABLE C ... ENGINE MYISAM;

  ALTER TABLE B ENGINE NDB;

  SET @@ndb_table_no_logging = 0;

  CREATE TABLE D ... ENGINE NDB;
  ALTER TABLE C ENGINE NDB;

  SET @@ndb_table_no_logging = 1;
  ```

   After the previous sequence of events, tables `A` and `B` are not checkpointed; `A` was created with `ENGINE NDB` and B was altered to use `NDB`, both while `ndb_table_no_logging` was enabled. However, tables `C` and `D` are logged; `C` was altered to use [`NDB`](mysql-cluster.html) and `D` was created using `ENGINE NDB`, both while [`ndb_table_no_logging`](mysql-cluster-options-variables.html#sysvar_ndb_table_no_logging) was disabled. Setting [`ndb_table_no_logging`](mysql-cluster-options-variables.html#sysvar_ndb_table_no_logging) back to `1` or `ON` does *not* cause table `C` or `D` to be checkpointed.

  Note

  [`ndb_table_no_logging`](mysql-cluster-options-variables.html#sysvar_ndb_table_no_logging) has no effect on the creation of [`NDB`](mysql-cluster.html) table schema files; to suppress these, use [`ndb_table_temporary`](mysql-cluster-options-variables.html#sysvar_ndb_table_temporary) instead.

* []() [`ndb_table_temporary`](mysql-cluster-options-variables.html#sysvar_ndb_table_temporary)

  []()[]()

  |                           System Variable                            |`[ndb_table_temporary](mysql-cluster-options-variables.html#sysvar_ndb_table_temporary)`|
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------|
  |                                Scope                                 |                                        Session                                         |
  |                               Dynamic                                |                                          Yes                                           |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                           No                                           |
  |                                 Type                                 |                                        Boolean                                         |
  |                            Default Value                             |                                         `OFF`                                          |

   When set to `ON` or `1`, this variable causes [`NDB`](mysql-cluster.html) tables not to be written to disk: This means that no table schema files are created, and that the tables are not logged.

  Note

   Setting this variable currently has no effect. This is a known issue; see Bug #34036.

* []() [`ndb_use_copying_alter_table`](mysql-cluster-options-variables.html#sysvar_ndb_use_copying_alter_table)

  []()[]()

  |                           System Variable                            |`[ndb_use_copying_alter_table](mysql-cluster-options-variables.html#sysvar_ndb_use_copying_alter_table)`|
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
  |                                Scope                                 |                                            Global, Session                                             |
  |                               Dynamic                                |                                                   No                                                   |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                                   No                                                   |

   Forces [`NDB`](mysql-cluster.html) to use copying of tables in the event of problems with online [`ALTER TABLE`](alter-table.html) operations. The default value is `OFF`.

* []() [`ndb_use_exact_count`](mysql-cluster-options-variables.html#sysvar_ndb_use_exact_count)

  []()[]()

  |                           System Variable                            |`[ndb_use_exact_count](mysql-cluster-options-variables.html#sysvar_ndb_use_exact_count)`|
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------|
  |                                Scope                                 |                                    Global, Session                                     |
  |                               Dynamic                                |                                          Yes                                           |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                           No                                           |
  |                                 Type                                 |                                        Boolean                                         |
  |                            Default Value                             |                                         `OFF`                                          |

   Forces [`NDB`](mysql-cluster.html) 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.

* []() [`ndb_use_transactions`](mysql-cluster-options-variables.html#sysvar_ndb_use_transactions)

  []()[]()

  |                         Command-Line Format                          |                           `--ndb-use-transactions[={OFF|ON}]`                            |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndb_use_transactions](mysql-cluster-options-variables.html#sysvar_ndb_use_transactions)`|
  |                                Scope                                 |                                     Global, Session                                      |
  |                               Dynamic                                |                                           Yes                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                            No                                            |
  |                                 Type                                 |                                         Boolean                                          |
  |                            Default Value                             |                                           `ON`                                           |

   You can disable [`NDB`](mysql-cluster.html) transaction support by setting this variable's values to `OFF` (not recommended). The default is `ON`.

* []() [`ndb_version`](mysql-cluster-options-variables.html#sysvar_ndb_version)

  []()[]()

  |                           System Variable                            |`[ndb_version](mysql-cluster-options-variables.html#sysvar_ndb_version)`|
  |----------------------------------------------------------------------|------------------------------------------------------------------------|
  |                                Scope                                 |                                 Global                                 |
  |                               Dynamic                                |                                   No                                   |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                   No                                   |
  |                                 Type                                 |                                 String                                 |
  |                            Default Value                             |                                   ``                                   |

  `NDB` engine version, as a composite integer.

* []() [`ndb_version_string`](mysql-cluster-options-variables.html#sysvar_ndb_version_string)

  []()[]()

  |                           System Variable                            |`[ndb_version_string](mysql-cluster-options-variables.html#sysvar_ndb_version_string)`|
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------------|
  |                                Scope                                 |                                        Global                                        |
  |                               Dynamic                                |                                          No                                          |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                          No                                          |
  |                                 Type                                 |                                        String                                        |
  |                            Default Value                             |                                          ``                                          |

  `NDB` engine version in `ndb-*`x.y.z`*` format.

* []() [`replica_allow_batching`](mysql-cluster-options-variables.html#sysvar_replica_allow_batching)

  []()[]()

  |                         Command-Line Format                          |                            `--replica-allow-batching[={OFF|ON}]`                             |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
  |                              Introduced                              |                                      8.0.26-ndb-8.0.26                                       |
  |                           System Variable                            |`[replica_allow_batching](mysql-cluster-options-variables.html#sysvar_replica_allow_batching)`|
  |                                Scope                                 |                                            Global                                            |
  |                               Dynamic                                |                                             Yes                                              |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                              No                                              |
  |                                 Type                                 |                                           Boolean                                            |
  |                            Default Value                             |                                            `OFF`                                             |

   Whether or not batched updates are enabled on NDB Cluster replicas. From MySQL 8.0.26, use [`replica_allow_batching`](mysql-cluster-options-variables.html#sysvar_replica_allow_batching) in place of [`slave_allow_batching`](mysql-cluster-options-variables.html#sysvar_slave_allow_batching), which is deprecated from that release. In releases before MySQL 8.0.26, use [`slave_allow_batching`](mysql-cluster-options-variables.html#sysvar_slave_allow_batching).

   Setting this variable has an effect only when using replication with the `NDB` storage engine; in MySQL Server 8.0, it is present but does nothing. For more information, see [Section 23.7.6, “Starting NDB Cluster Replication (Single Replication Channel)”](mysql-cluster-replication-starting.html).

* []() [`server_id_bits`](mysql-cluster-options-variables.html#sysvar_server_id_bits)

  []()[]()[]()[]()

  |                         Command-Line Format                          |                             `--server-id-bits=#`                             |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------|
  |                           System Variable                            |`[server_id_bits](mysql-cluster-options-variables.html#sysvar_server_id_bits)`|
  |                                Scope                                 |                                    Global                                    |
  |                               Dynamic                                |                                      No                                      |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](replication-options.html#sysvar_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`](https://dev.mysql.com/doc/ndbapi/en/ndb-ndboperation.html#ndb-ndboperation-operationoptions) structure (NDB Cluster uses the `AnyValue` to store the server ID).

   When extracting the effective server ID from [`server_id`](replication-options.html#sysvar_server_id) for purposes such as detection of replication loops, the server ignores the remaining bits. The [`server_id_bits`](mysql-cluster-options-variables.html#sysvar_server_id_bits) variable is used to mask out any irrelevant bits of [`server_id`](replication-options.html#sysvar_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**](mysqlbinlog.html), provided that it is run with its own [`server_id_bits`](mysql-cluster-options-variables.html#sysvar_server_id_bits) variable set to 32 (the default).

   If the value of [`server_id`](replication-options.html#sysvar_server_id) greater than or equal to 2 to the power of [`server_id_bits`](mysql-cluster-options-variables.html#sysvar_server_id_bits); otherwise, [**mysqld**](mysqld.html) refuses to start.

   This system variable is supported only by NDB Cluster. It is not supported in the standard MySQL 8.0 Server.

* []() [`slave_allow_batching`](mysql-cluster-options-variables.html#sysvar_slave_allow_batching)

  []()[]()

  |                         Command-Line Format                          |                           `--slave-allow-batching[={OFF|ON}]`                            |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                              Deprecated                              |                                    8.0.26-ndb-8.0.26                                     |
  |                           System Variable                            |`[slave_allow_batching](mysql-cluster-options-variables.html#sysvar_slave_allow_batching)`|
  |                                Scope                                 |                                          Global                                          |
  |                               Dynamic                                |                                           Yes                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                            No                                            |
  |                                 Type                                 |                                         Boolean                                          |
  |                            Default Value                             |                                          `OFF`                                           |

   Whether or not batched updates are enabled on NDB Cluster replicas. From MySQL 8.0.26, [`slave_allow_batching`](mysql-cluster-options-variables.html#sysvar_slave_allow_batching) is deprecated and the alias [`replica_allow_batching`](mysql-cluster-options-variables.html#sysvar_replica_allow_batching) should be used instead. In releases before MySQL 8.0.26, use [`slave_allow_batching`](mysql-cluster-options-variables.html#sysvar_slave_allow_batching).

   Setting this variable has an effect only when using replication with the `NDB` storage engine; in MySQL Server 8.0, it is present but does nothing. For more information, see [Section 23.7.6, “Starting NDB Cluster Replication (Single Replication Channel)”](mysql-cluster-replication-starting.html).

* []() [`transaction_allow_batching`](mysql-cluster-options-variables.html#sysvar_transaction_allow_batching)

  []()[]()

  |                           System Variable                            |`[transaction_allow_batching](mysql-cluster-options-variables.html#sysvar_transaction_allow_batching)`|
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|
  |                                Scope                                 |                                               Session                                                |
  |                               Dynamic                                |                                                 Yes                                                  |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](server-system-variables.html#sysvar_autocommit) must first be disabled by setting it to `0` or `OFF`; otherwise, setting [`transaction_allow_batching`](mysql-cluster-options-variables.html#sysvar_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`](commit.html) if desired) before issuing a [`SELECT`](select.html).

  Important

  [`transaction_allow_batching`](mysql-cluster-options-variables.html#sysvar_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`](mysql-cluster-ndbinfo.html) information database.

* []() [`ndbinfo_database`](mysql-cluster-options-variables.html#sysvar_ndbinfo_database)

  []()[]()

  |                           System Variable                            |`[ndbinfo_database](mysql-cluster-options-variables.html#sysvar_ndbinfo_database)`|
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------|
  |                                Scope                                 |                                      Global                                      |
  |                               Dynamic                                |                                        No                                        |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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.

* []() [`ndbinfo_max_bytes`](mysql-cluster-options-variables.html#sysvar_ndbinfo_max_bytes)

  []()[]()

  |                         Command-Line Format                          |                              `--ndbinfo-max-bytes=#`                               |
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndbinfo_max_bytes](mysql-cluster-options-variables.html#sysvar_ndbinfo_max_bytes)`|
  |                                Scope                                 |                                  Global, Session                                   |
  |                               Dynamic                                |                                        Yes                                         |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                         No                                         |
  |                                 Type                                 |                                      Integer                                       |
  |                            Default Value                             |                                        `0`                                         |

   Used in testing and debugging only.

* []() [`ndbinfo_max_rows`](mysql-cluster-options-variables.html#sysvar_ndbinfo_max_rows)

  []()[]()

  |                         Command-Line Format                          |                              `--ndbinfo-max-rows=#`                              |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndbinfo_max_rows](mysql-cluster-options-variables.html#sysvar_ndbinfo_max_rows)`|
  |                                Scope                                 |                                 Global, Session                                  |
  |                               Dynamic                                |                                       Yes                                        |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                        No                                        |
  |                                 Type                                 |                                     Integer                                      |
  |                            Default Value                             |                                       `10`                                       |

   Used in testing and debugging only.

* []() [`ndbinfo_offline`](mysql-cluster-options-variables.html#sysvar_ndbinfo_offline)

  []()[]()

  |                           System Variable                            |`[ndbinfo_offline](mysql-cluster-options-variables.html#sysvar_ndbinfo_offline)`|
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------|
  |                                Scope                                 |                                     Global                                     |
  |                               Dynamic                                |                                      Yes                                       |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                       No                                       |
  |                                 Type                                 |                                    Boolean                                     |
  |                            Default Value                             |                                     `OFF`                                      |

   Place the [`ndbinfo`](mysql-cluster-ndbinfo.html) 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`](mysql-cluster.html). No rows are returned from such tables (or views).

* []() [`ndbinfo_show_hidden`](mysql-cluster-options-variables.html#sysvar_ndbinfo_show_hidden)

  []()[]()

  |                         Command-Line Format                          |                           `--ndbinfo-show-hidden[={OFF|ON}]`                           |
  |----------------------------------------------------------------------|----------------------------------------------------------------------------------------|
  |                           System Variable                            |`[ndbinfo_show_hidden](mysql-cluster-options-variables.html#sysvar_ndbinfo_show_hidden)`|
  |                                Scope                                 |                                    Global, Session                                     |
  |                               Dynamic                                |                                          Yes                                           |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                           No                                           |
  |                                 Type                                 |                                        Boolean                                         |
  |                            Default Value                             |                                         `OFF`                                          |
  |                             Valid Values                             |                                  `ON`<br/><br/>`OFF`                                   |

   Whether or not the [`ndbinfo`](mysql-cluster-ndbinfo.html) database's underlying internal tables are shown in the [**mysql**](mysql.html) client. The default is `OFF`.

  Note

   When `ndbinfo_show_hidden` is enabled, the internal tables are shown in the `ndbinfo` database only; they are not visible in [`TABLES`](information-schema-tables-table.html) or other `INFORMATION_SCHEMA` tables, regardless of the variable's setting.

* []() [`ndbinfo_table_prefix`](mysql-cluster-options-variables.html#sysvar_ndbinfo_table_prefix)

  []()[]()

  |                           System Variable                            |`[ndbinfo_table_prefix](mysql-cluster-options-variables.html#sysvar_ndbinfo_table_prefix)`|
  |----------------------------------------------------------------------|------------------------------------------------------------------------------------------|
  |                                Scope                                 |                                          Global                                          |
  |                               Dynamic                                |                                            No                                            |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-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`](mysql-cluster-options-variables.html#sysvar_ndbinfo_show_hidden)). This is a read-only variable whose default value is `ndb$`; the prefix itself is determined at compile time.

* []() [`ndbinfo_version`](mysql-cluster-options-variables.html#sysvar_ndbinfo_version)

  []()[]()[]()[]()

  |                           System Variable                            |`[ndbinfo_version](mysql-cluster-options-variables.html#sysvar_ndbinfo_version)`|
  |----------------------------------------------------------------------|--------------------------------------------------------------------------------|
  |                                Scope                                 |                                     Global                                     |
  |                               Dynamic                                |                                       No                                       |
  |[`SET_VAR`](optimizer-hints.html#optimizer-hints-set-var) Hint Applies|                                       No                                       |
  |                                 Type                                 |                                     String                                     |
  |                            Default Value                             |                                       ``                                       |

   Shows the version of the [`ndbinfo`](mysql-cluster-ndbinfo.html) engine in use; read-only.

##### 23.4.3.9.3 NDB Cluster Status Variables

[]()[]()

 This section provides detailed information about MySQL server status variables that relate to NDB Cluster and the [`NDB`](mysql-cluster.html) storage engine. For status variables not specific to NDB Cluster, and for general information on using status variables, see [Section 5.1.10, “Server Status Variables”](server-status-variables.html).

* []() [`Handler_discover`](mysql-cluster-options-variables.html#statvar_Handler_discover)

  []()[]()

   The MySQL server can ask the [`NDBCLUSTER`](mysql-cluster.html) storage engine if it knows about a table with a given name. This is called discovery. [`Handler_discover`](mysql-cluster-options-variables.html#statvar_Handler_discover) indicates the number of times that tables have been discovered using this mechanism.

* []() [`Ndb_api_adaptive_send_deferred_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_adaptive_send_deferred_count)

  []()[]()

   Number of adaptive send calls that were not actually sent.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_adaptive_send_deferred_count_session`](mysql-cluster-options-variables.html#statvar_Ndb_api_adaptive_send_deferred_count_session)

  []()[]()

   Number of adaptive send calls that were not actually sent.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_adaptive_send_deferred_count_replica`](mysql-cluster-options-variables.html#statvar_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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_adaptive_send_deferred_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_adaptive_send_deferred_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_adaptive_send_deferred_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_adaptive_send_deferred_count_replica) instead.

   Number of adaptive send calls that were not actually sent by this replica.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_adaptive_send_forced_count`](mysql-cluster-options-variables.html#statvar_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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_adaptive_send_forced_count_session`](mysql-cluster-options-variables.html#statvar_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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_adaptive_send_forced_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_adaptive_send_forced_count_replica)

  []()[]()

   Number of adaptive send calls using forced-send sent by this replica.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_adaptive_send_forced_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_adaptive_send_forced_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_adaptive_send_forced_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_adaptive_send_forced_count_replica) instead.

   Number of adaptive send calls using forced-send sent by this replica.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_adaptive_send_unforced_count`](mysql-cluster-options-variables.html#statvar_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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_adaptive_send_unforced_count_session`](mysql-cluster-options-variables.html#statvar_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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_adaptive_send_unforced_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_adaptive_send_unforced_count_replica)

  []()[]()

   Number of adaptive send calls without forced-send sent by this replica.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_adaptive_send_unforced_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_adaptive_send_unforced_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_adaptive_send_unforced_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_adaptive_send_unforced_count_replica) instead.

   Number of adaptive send calls without forced-send sent by this replica.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_bytes_sent_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_bytes_sent_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_bytes_sent_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_bytes_sent_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_bytes_sent_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_bytes_sent_count_replica) instead.

   Amount of data (in bytes) sent to the data nodes by this replica.

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_bytes_sent_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_bytes_sent_count)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_bytes_received_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_bytes_received_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_bytes_received_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_bytes_received_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_bytes_received_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_bytes_received_count_replica) instead.

   Amount of data (in bytes) received from the data nodes by this replica.

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_bytes_received_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_bytes_received_count)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_event_data_count_injector`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_event_data_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_event_data_count)

  []()[]()

   The number of row change events received by this MySQL Server (SQL node).

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_event_nondata_count_injector`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_event_nondata_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_event_nondata_count)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_event_bytes_count_injector`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_event_bytes_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_event_bytes_count)

  []()[]()

   The number of bytes of events received by this MySQL Server (SQL node).

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_pk_op_count_session`](mysql-cluster-options-variables.html#statvar_Ndb_api_pk_op_count_session)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_pk_op_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_pk_op_count_replica)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_pk_op_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_pk_op_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_pk_op_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_pk_op_count_replica) instead.

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_pk_op_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_pk_op_count)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_pruned_scan_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_pruned_scan_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_pruned_scan_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_pruned_scan_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_pruned_scan_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_pruned_scan_count_replica) instead.

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_pruned_scan_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_pruned_scan_count)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_range_scan_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_range_scan_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_range_scan_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_range_scan_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_range_scan_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_range_scan_count_replica) instead.

   The number of range scans that have been started by this replica.

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_range_scan_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_range_scan_count)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_read_row_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_read_row_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_read_row_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_read_row_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_read_row_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_read_row_count_replica) instead.

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_read_row_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_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).

   You should be aware that this value may not be completely accurate with regard to rows read by [`SELECT`](select.html) [`COUNT(*)`](aggregate-functions.html#function_count) queries, due to the fact that, in this case, the MySQL server actually reads pseudo-rows in the form `[*`table fragment ID`*]:[*`number of rows in fragment`*]` and sums the rows per fragment for all fragments in the table to derive an estimated count for all rows. `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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_scan_batch_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_scan_batch_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_scan_batch_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_scan_batch_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_scan_batch_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_scan_batch_count_replica) instead.

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_scan_batch_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_scan_batch_count)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_table_scan_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_table_scan_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_table_scan_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_table_scan_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_table_scan_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_table_scan_count_replica) instead.

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_table_scan_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_table_scan_count)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_abort_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_abort_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_abort_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_abort_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_trans_abort_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_abort_count_replica) instead.

   The number of transactions aborted by this replica.

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_abort_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_abort_count)

  []()[]()

   The number of transactions aborted by this MySQL Server (SQL node).

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_close_count_session`](mysql-cluster-options-variables.html#statvar_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`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_commit_count_session) and [`Ndb_api_trans_abort_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_close_count_replica`](mysql-cluster-options-variables.html#statvar_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`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_commit_count_replica) and [`Ndb_api_trans_abort_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_close_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_close_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_trans_close_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_close_count_replica) instead.

   The number of transactions closed by this replica. This value may be greater than the sum of [`Ndb_api_trans_commit_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_commit_count_replica) and [`Ndb_api_trans_abort_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_close_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_close_count)

  []()[]()

   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`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_commit_count) and [`Ndb_api_trans_abort_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_abort_count), since some transactions may have been rolled back.

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_commit_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_commit_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_commit_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_commit_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_trans_commit_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_commit_count_replica) instead.

   The number of transactions committed by this replica.

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_commit_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_commit_count)

  []()[]()

   The number of transactions committed by this MySQL Server (SQL node).

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_local_read_row_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_local_read_row_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_local_read_row_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_local_read_row_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_trans_local_read_row_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_local_read_row_count_replica) instead.

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_local_read_row_count`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_start_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_start_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_start_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_start_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_trans_start_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_start_count_replica) instead.

   The number of transactions started by this replica.

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_trans_start_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_start_count)

  []()[]()

   The number of transactions started by this MySQL Server (SQL node).

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_uk_op_count_session`](mysql-cluster-options-variables.html#statvar_Ndb_api_uk_op_count_session)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_uk_op_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_uk_op_count_replica)

  []()[]()

   The number of operations by this replica based on or using unique keys.

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_uk_op_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_uk_op_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_uk_op_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_uk_op_count_replica) instead.

   The number of operations by this replica based on or using unique keys.

   Although this variable can be read using either [`SHOW GLOBAL STATUS`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_uk_op_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_uk_op_count)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_exec_complete_count_session`](mysql-cluster-options-variables.html#statvar_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()`](https://dev.mysql.com/doc/ndbapi/en/ndb-ndbtransaction.html#ndb-ndbtransaction-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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_exec_complete_count_replica`](mysql-cluster-options-variables.html#statvar_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()`](https://dev.mysql.com/doc/ndbapi/en/ndb-ndbtransaction.html#ndb-ndbtransaction-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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_exec_complete_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_wait_exec_complete_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_wait_exec_complete_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_wait_exec_complete_count_replica) instead.

   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()`](https://dev.mysql.com/doc/ndbapi/en/ndb-ndbtransaction.html#ndb-ndbtransaction-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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_exec_complete_count`](mysql-cluster-options-variables.html#statvar_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()`](https://dev.mysql.com/doc/ndbapi/en/ndb-ndbtransaction.html#ndb-ndbtransaction-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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_meta_request_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_meta_request_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_meta_request_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_wait_meta_request_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_wait_meta_request_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_wait_meta_request_count_replica) instead.

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_meta_request_count`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_nanos_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_nanos_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_nanos_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_wait_nanos_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_wait_nanos_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_wait_nanos_count_replica) instead.

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_nanos_count`](mysql-cluster-options-variables.html#statvar_Ndb_api_wait_nanos_count)

  []()[]()

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_scan_result_count_session`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it relates to the current session only, and is not affected by any other clients of this [**mysqld**](mysqld.html).

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_scan_result_count_replica`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_scan_result_count_slave`](mysql-cluster-options-variables.html#statvar_Ndb_api_wait_scan_result_count_slave)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_api_wait_scan_result_count_replica`](mysql-cluster-options-variables.html#statvar_Ndb_api_wait_scan_result_count_replica) instead.

   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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), 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 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_api_wait_scan_result_count`](mysql-cluster-options-variables.html#statvar_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`](show-status.html) or [`SHOW SESSION STATUS`](show-status.html), it is effectively global in scope.

   For more information, see [Section 23.6.13, “NDB API Statistics Counters and Variables”](mysql-cluster-ndb-api-statistics.html).

* []() [`Ndb_cluster_node_id`](mysql-cluster-options-variables.html#statvar_Ndb_cluster_node_id)

  []()[]()

   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.

* []() [`Ndb_config_from_host`](mysql-cluster-options-variables.html#statvar_Ndb_config_from_host)

  []()[]()

   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.

* []() [`Ndb_config_from_port`](mysql-cluster-options-variables.html#statvar_Ndb_config_from_port)

  []()[]()

   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.

* []() [`Ndb_config_generation`](mysql-cluster-options-variables.html#statvar_Ndb_config_generation)

  []()[]()

   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.

* []() [`Ndb_conflict_fn_max_del_win`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_fn_max_del_win)

  []()[]()

   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**](mysqld.html) was started.

   For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_conflict_fn_max`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_fn_max)

  []()[]()

   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**](mysqld.html) was started.

   For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_conflict_fn_old`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_fn_old)

  []()[]()

   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**](mysqld.html) since the last time it was restarted.

   For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_conflict_fn_epoch`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_fn_epoch)

  []()[]()

   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**](mysqld.html) since the last time it was restarted.

   For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_conflict_fn_epoch2`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_fn_epoch2)

  []()[]()

   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()](mysql-cluster-replication-conflict-resolution.html#mysql-cluster-replication-ndb-epoch2).

* []() [`Ndb_conflict_fn_epoch_trans`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_fn_epoch_trans)

  []()[]()

   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**](mysqld.html) since the last time it was restarted.

   For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_conflict_fn_epoch2_trans`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_fn_epoch2_trans)

  []()[]()

   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**](mysqld.html) since the last time it was restarted.

   For more information, see [NDB$EPOCH2\_TRANS()](mysql-cluster-replication-conflict-resolution.html#mysql-cluster-replication-ndb-epoch2-trans).

* []() [`Ndb_conflict_last_conflict_epoch`](mysql-cluster-options-variables.html#statvar_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`](mysql-cluster-options-variables.html#statvar_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 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html), for more information.

* []() [`Ndb_conflict_reflected_op_discard_count`](mysql-cluster-options-variables.html#statvar_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 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html), for more information.

* []() [`Ndb_conflict_reflected_op_prepare_count`](mysql-cluster-options-variables.html#statvar_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 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_conflict_refresh_op_count`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_refresh_op_count)

  []()[]()

   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 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html), for more information.

* []() [`Ndb_conflict_last_stable_epoch`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_last_stable_epoch)

  []()[]()

   Number of rows found to be in conflict by a transactional conflict function

   See [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html), for more information.

* []() [`Ndb_conflict_trans_row_conflict_count`](mysql-cluster-options-variables.html#statvar_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**](mysqld.html) 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`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_fn_epoch_trans).

   For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_conflict_trans_row_reject_count`](mysql-cluster-options-variables.html#statvar_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`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_trans_row_conflict_count), but any rows in or dependent on conflicting transactions.

   For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_conflict_trans_reject_count`](mysql-cluster-options-variables.html#statvar_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 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_conflict_trans_detect_iter_count`](mysql-cluster-options-variables.html#statvar_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`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_trans_conflict_commit_count).

   For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_conflict_trans_conflict_commit_count`](mysql-cluster-options-variables.html#statvar_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 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_epoch_delete_delete_count`](mysql-cluster-options-variables.html#statvar_Ndb_epoch_delete_delete_count)

  []()[]()

   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.

* []() [`Ndb_execute_count`](mysql-cluster-options-variables.html#statvar_Ndb_execute_count)

  []()[]()

   Provides the number of round trips to the [`NDB`](mysql-cluster.html) kernel made by operations.

* []() [`Ndb_last_commit_epoch_server`](mysql-cluster-options-variables.html#statvar_Ndb_last_commit_epoch_server)

  []()[]()

   The epoch most recently committed by `NDB`.

* []() [`Ndb_last_commit_epoch_session`](mysql-cluster-options-variables.html#statvar_Ndb_last_commit_epoch_session)

  []()[]()

   The epoch most recently committed by this `NDB` client.

* []() [`Ndb_metadata_detected_count`](mysql-cluster-options-variables.html#statvar_Ndb_metadata_detected_count)

  []()[]()

   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.

* []() [`Ndb_metadata_excluded_count`](mysql-cluster-options-variables.html#statvar_Ndb_metadata_excluded_count)

  []()[]()[]()[]()

   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 *`table`*`, or any other statement that would trigger table discovery.

   Prior to NDB 8.0.22, this variable was named `Ndb_metadata_blacklist_size`.

* []() [`Ndb_metadata_synced_count`](mysql-cluster-options-variables.html#statvar_Ndb_metadata_synced_count)

  []()[]()

   The number of NDB metadata objects which have been synchronized on this SQL node since it was last restarted.

* []() [`Ndb_number_of_data_nodes`](mysql-cluster-options-variables.html#statvar_Ndb_number_of_data_nodes)

  []()[]()

   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.

* []() [`Ndb_pushed_queries_defined`](mysql-cluster-options-variables.html#statvar_Ndb_pushed_queries_defined)

  []()[]()

   The total number of joins pushed down to the NDB kernel for distributed handling on the data nodes.

  Note

   Joins tested using [`EXPLAIN`](explain.html) that can be pushed down contribute to this number.

* []() [`Ndb_pushed_queries_dropped`](mysql-cluster-options-variables.html#statvar_Ndb_pushed_queries_dropped)

  []()[]()

   The number of joins that were pushed down to the NDB kernel but that could not be handled there.

* []() [`Ndb_pushed_queries_executed`](mysql-cluster-options-variables.html#statvar_Ndb_pushed_queries_executed)

  []()[]()

   The number of joins successfully pushed down to [`NDB`](mysql-cluster.html) and executed there.

* []() [`Ndb_pushed_reads`](mysql-cluster-options-variables.html#statvar_Ndb_pushed_reads)

  []()[]()

   The number of rows returned to [**mysqld**](mysqld.html) from the NDB kernel by joins that were pushed down.

  Note

   Executing [`EXPLAIN`](explain.html) on joins that can be pushed down to [`NDB`](mysql-cluster.html) does not add to this number.

* []() [`Ndb_pruned_scan_count`](mysql-cluster-options-variables.html#statvar_Ndb_pruned_scan_count)

  []()[]()

   This variable holds a count of the number of scans executed by [`NDBCLUSTER`](mysql-cluster.html) since the NDB Cluster was last started where [`NDBCLUSTER`](mysql-cluster.html) was able to use partition pruning.

   Using this variable together with [`Ndb_scan_count`](mysql-cluster-options-variables.html#statvar_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`](mysql-cluster-options-variables.html#statvar_Ndb_replica_max_replicated_epoch)

  []()[]()

   The most recently committed epoch on this replica. You can compare this value with [`Ndb_conflict_last_conflict_epoch`](mysql-cluster-options-variables.html#statvar_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 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_scan_count`](mysql-cluster-options-variables.html#statvar_Ndb_scan_count)

  []()[]()

   This variable holds a count of the total number of scans executed by [`NDBCLUSTER`](mysql-cluster.html) since the NDB Cluster was last started.

* []() [`Ndb_slave_max_replicated_epoch`](mysql-cluster-options-variables.html#statvar_Ndb_slave_max_replicated_epoch)

  []()[]()

  Note

   Deprecated in NDB 8.0.23; use [`Ndb_slave_max_replicated_epoch`](mysql-cluster-options-variables.html#statvar_Ndb_slave_max_replicated_epoch) instead.

   The most recently committed epoch on this replica. You can compare this value with [`Ndb_conflict_last_conflict_epoch`](mysql-cluster-options-variables.html#statvar_Ndb_conflict_last_conflict_epoch); if `Ndb_slave_max_replicated_epoch` is the greater of the two, no conflicts have yet been detected.

   For more information, see [Section 23.7.11, “NDB Cluster Replication Conflict Resolution”](mysql-cluster-replication-conflict-resolution.html).

* []() [`Ndb_system_name`](mysql-cluster-options-variables.html#statvar_Ndb_system_name)

  []()[]()

   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.

* []() [`Ndb_trans_hint_count_session`](mysql-cluster-options-variables.html#statvar_Ndb_trans_hint_count_session)

  []()[]()

   The number of transactions using hints that have been started in the current session. Compare with [`Ndb_api_trans_start_count_session`](mysql-cluster-options-variables.html#statvar_Ndb_api_trans_start_count_session) to obtain the proportion of all NDB transactions able to use hints.

