MySQL 8.4 Reference Manual Including MySQL NDB Cluster 8.4
A number of features supported by other storage engines are not
supported for NDB
tables. Trying to
use any of these features in NDB Cluster does not cause errors
in or of itself; however, errors may occur in applications that
expects the features to be supported or enforced. Statements
referencing such features, even if effectively ignored by
NDB
, must be syntactically and otherwise
valid.
Index prefixes.
Prefixes on indexes are not supported for
NDB
tables. If a prefix is used as part
of an index specification in a statement such as
CREATE TABLE
,
ALTER TABLE
, or
CREATE INDEX
, the prefix is
not created by NDB
.
A statement containing an index prefix, and creating or
modifying an NDB
table, must still be
syntactically valid. For example, the following statement
always fails with Error 1089 Incorrect prefix
key; the used key part is not a string, the used length is
longer than the key part, or the storage engine doesn't
support unique prefix keys, regardless of
storage engine:
CREATE TABLE
t1 (
c1 INT NOT NULL,
c2 VARCHAR(100),
INDEX i1 (c2(500))
);
This happens on account of the SQL syntax rule that no index may have a prefix larger than itself.
Savepoints and rollbacks.
Savepoints and rollbacks to savepoints are ignored as in
MyISAM
.
Durability of commits. There are no durable commits on disk. Commits are replicated, but there is no guarantee that logs are flushed to disk on commit.
Replication.
Statement-based replication is not supported. Use
--binlog-format=ROW
(or
--binlog-format=MIXED
) when
setting up cluster replication. See
Section 25.7, “NDB Cluster Replication”, for more
information.
Replication using global transaction identifiers (GTIDs) is
not compatible with NDB Cluster, and is not supported in NDB
Cluster 8.4. Do not enable GTIDs when using the
NDB
storage engine, as this is very
likely to cause problems up to and including failure of NDB
Cluster Replication.
Semisynchronous replication is not supported in NDB Cluster.
Generated columns.
The NDB
storage engine does not support
indexes on virtual generated columns.
As with other storage engines, you can create an index on a
stored generated column, but you should bear in mind that
NDB
uses
DataMemory
for
storage of the generated column as well as
IndexMemory
for the
index. See
JSON columns and indirect indexing in NDB Cluster,
for an example.
NDB Cluster writes changes in stored generated columns to
the binary log, but does log not those made to virtual
columns. This should not effect NDB Cluster Replication or
replication between NDB
and other MySQL
storage engines.
See Section 25.2.7.3, “Limits Relating to Transaction Handling in NDB Cluster”,
for more information relating to limitations on transaction
handling in NDB
.