Documentation Home
MySQL NDB Cluster 6.1-7.1

MySQL NDB Cluster 6.1-7.1  /  ...  /  Unsupported or Missing Features in MySQL Cluster

3.6.6 Unsupported or Missing Features in MySQL Cluster

A number of features supported by other storage engines are not supported for NDB tables. Trying to use any of these features in MySQL 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.

  • Foreign key constraints.  Prior to MySQL Cluster NDB 7.3, the foreign key construct is ignored, just as it is by MyISAM tables. Foreign keys are supported in MySQL Cluster NDB 7.3 and later.

  • 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 isn't 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:

        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.

  • OPTIMIZE operations.  OPTIMIZE operations are not supported.

    Beginning with MySQL Cluster NDB 6.3.7, this limitation has been lifted. See Section 3.6.11, “Previous MySQL Cluster Issues Resolved in MySQL 5.1, MySQL Cluster NDB 6.x, and MySQL Cluster NDB 7.x”, for more information.


  • 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 Chapter 8, MySQL Cluster Replication, for more information.


See Section 3.6.3, “Limits Relating to Transaction Handling in MySQL Cluster”, for more information relating to limitations on transaction handling in NDB.