<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h4 class="title">
      <a name="mysql-cluster-limitations-unsupported">
      </a>
      25.2.7.6 Unsupported or Missing Features in NDB Cluster
     </h4>
    </div>
   </div>
  </div>
  <a class="indexterm" name="idm46045123277456">
  </a>
  <p>
   A number of features supported by other storage engines are not
        supported for
   <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
    <code class="literal">
     NDB
    </code>
   </a>
   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
   <code class="literal">
    NDB
   </code>
   , must be syntactically and otherwise
        valid.
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      <b>
       Index prefixes.
      </b>
      Prefixes on indexes are not supported for
      <code class="literal">
       NDB
      </code>
      tables. If a prefix is used as part
              of an index specification in a statement such as
      <a class="link" href="create-table.html" title="15.1.20 CREATE TABLE Statement">
       <code class="literal">
        CREATE TABLE
       </code>
      </a>
      ,
      <a class="link" href="alter-table.html" title="15.1.9 ALTER TABLE Statement">
       <code class="literal">
        ALTER TABLE
       </code>
      </a>
      , or
      <a class="link" href="create-index.html" title="15.1.15 CREATE INDEX Statement">
       <code class="literal">
        CREATE INDEX
       </code>
      </a>
      , the prefix is
              not created by
      <code class="literal">
       NDB
      </code>
      .
     </p>
     <p>
      A statement containing an index prefix, and creating or
            modifying an
      <code class="literal">
       NDB
      </code>
      table, must still be
            syntactically valid. For example, the following statement
            always fails with Error 1089
      <span class="errortext">
       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
      </span>
      , regardless of
            storage engine:
     </p>
     <div class="copytoclipboard-wrapper">
      <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa57643797"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> t1 <span class="token punctuation">(</span>
    c1 <span class="token datatype">INT</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
    <em>c2 <span class="token datatype">VARCHAR</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
    <span class="token keyword">INDEX</span> i1 <span class="token punctuation">(</span>c2<span class="token punctuation">(</span><span class="token number">500</span><span class="token punctuation">)</span><span class="token punctuation">)</span></em><span class="token punctuation"></span>
<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
     </div>
     <p>
      This happens on account of the SQL syntax rule that no index
            may have a prefix larger than itself.
     </p>
    </li>
    <li class="listitem">
     <p>
      <b>
       Savepoints and rollbacks.
      </b>
      Savepoints and rollbacks to savepoints are ignored as in
      <a class="link" href="myisam-storage-engine.html" title="18.2 The MyISAM Storage Engine">
       <code class="literal">
        MyISAM
       </code>
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      <b>
       Durability of commits.
      </b>
      There are no durable commits on disk. Commits are
              replicated, but there is no guarantee that logs are
              flushed to disk on commit.
     </p>
    </li>
    <li class="listitem">
     <p>
      <b>
       Replication.
      </b>
      Statement-based replication is not supported. Use
      <a class="link" href="replication-options-binary-log.html#sysvar_binlog_format">
       <code class="option">
        --binlog-format=ROW
       </code>
      </a>
      (or
      <a class="link" href="replication-options-binary-log.html#sysvar_binlog_format">
       <code class="option">
        --binlog-format=MIXED
       </code>
      </a>
      ) when
              setting up cluster replication. See
      <a class="xref" href="mysql-cluster-replication.html" title="25.7 NDB Cluster Replication">
       Section 25.7, “NDB Cluster Replication”
      </a>
      , for more
              information.
     </p>
     <p>
      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
      <code class="literal">
       NDB
      </code>
      storage engine, as this is very
            likely to cause problems up to and including failure of NDB
            Cluster Replication.
     </p>
     <p>
      Semisynchronous replication is not supported in NDB Cluster.
     </p>
    </li>
    <li class="listitem">
     <p>
      <b>
       Generated columns.
      </b>
      The
      <code class="literal">
       NDB
      </code>
      storage engine does not support
              indexes on virtual generated columns.
     </p>
     <p>
      As with other storage engines, you can create an index on a
            stored generated column, but you should bear in mind that
      <code class="literal">
       NDB
      </code>
      uses
      <a class="link" href="mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory">
       <code class="literal">
        DataMemory
       </code>
      </a>
      for
            storage of the generated column as well as
      <a class="link" href="mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexmemory">
       <code class="literal">
        IndexMemory
       </code>
      </a>
      for the
            index. See
      <a class="xref" href="create-table-secondary-indexes.html#json-column-indirect-index-mysql-cluster" title="JSON columns and indirect indexing in NDB Cluster">
       JSON columns and indirect indexing in NDB Cluster
      </a>
      ,
            for an example.
     </p>
     <p>
      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
      <code class="literal">
       NDB
      </code>
      and other MySQL
            storage engines.
     </p>
    </li>
   </ul>
  </div>
  <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
   <div class="admon-title">
    Note
   </div>
   <p>
    See
    <a class="xref" href="mysql-cluster-limitations-transactions.html" title="25.2.7.3 Limits Relating to Transaction Handling in NDB Cluster">
     Section 25.2.7.3, “Limits Relating to Transaction Handling in NDB Cluster”
    </a>
    ,
          for more information relating to limitations on transaction
          handling in
    <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
     <code class="literal">
      NDB
     </code>
    </a>
    .
   </p>
  </div>
 </div>
 <br/>
</div>
