<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h4 class="title">
      <a name="mysql-cluster-limitations-limits">
      </a>
      25.2.7.2 Limits and Differences of NDB Cluster from Standard MySQL Limits
     </h4>
    </div>
   </div>
  </div>
  <a class="indexterm" name="idm46045123510176">
  </a>
  <p>
   In this section, we list limits found in NDB Cluster that either
        differ from limits found in, or that are not found in, standard
        MySQL.
  </p>
  <a class="indexterm" name="idm46045123508096">
  </a>
  <a class="indexterm" name="idm46045123506608">
  </a>
  <a class="indexterm" name="idm46045123505152">
  </a>
  <a class="indexterm" name="idm46045123503664">
  </a>
  <a class="indexterm" name="idm46045123502176">
  </a>
  <p>
   <b>
    Memory usage and recovery.
   </b>
   Memory consumed when data is inserted into an
   <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
    <code class="literal">
     NDB
    </code>
   </a>
   table is not automatically
          recovered when deleted, as it is with other storage engines.
          Instead, the following rules hold true:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      A
      <a class="link" href="delete.html" title="15.2.2 DELETE Statement">
       <code class="literal">
        DELETE
       </code>
      </a>
      statement on an
      <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
       <code class="literal">
        NDB
       </code>
      </a>
      table makes the memory
            formerly used by the deleted rows available for re-use by
            inserts on the same table only. However, this memory can be
            made available for general re-use by performing
      <a class="link" href="optimize-table.html" title="15.7.3.4 OPTIMIZE TABLE Statement">
       <code class="literal">
        OPTIMIZE TABLE
       </code>
      </a>
      .
     </p>
     <p>
      A rolling restart of the cluster also frees any memory used
            by deleted rows. See
      <a class="xref" href="mysql-cluster-rolling-restart.html" title="25.6.5 Performing a Rolling Restart of an NDB Cluster">
       Section 25.6.5, “Performing a Rolling Restart of an NDB Cluster”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      A
      <a class="link" href="drop-table.html" title="15.1.32 DROP TABLE Statement">
       <code class="literal">
        DROP TABLE
       </code>
      </a>
      or
      <a class="link" href="truncate-table.html" title="15.1.37 TRUNCATE TABLE Statement">
       <code class="literal">
        TRUNCATE TABLE
       </code>
      </a>
      operation on
            an
      <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
       <code class="literal">
        NDB
       </code>
      </a>
      table frees the memory
            that was used by this table for re-use by any
      <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
       <code class="literal">
        NDB
       </code>
      </a>
      table, either by the same
            table or by another
      <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
       <code class="literal">
        NDB
       </code>
      </a>
      table.
     </p>
     <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
      <div class="admon-title">
       Note
      </div>
      <p>
       Recall that
       <a class="link" href="truncate-table.html" title="15.1.37 TRUNCATE TABLE Statement">
        <code class="literal">
         TRUNCATE TABLE
        </code>
       </a>
       drops and re-creates the table. See
       <a class="xref" href="truncate-table.html" title="15.1.37 TRUNCATE TABLE Statement">
        Section 15.1.37, “TRUNCATE TABLE Statement”
       </a>
       .
      </p>
     </div>
    </li>
    <li class="listitem">
     <p>
      <b>
       Limits imposed by the cluster's configuration.
      </b>
      <a class="indexterm" name="idm46045123481152">
      </a>
      A number of hard limits exist which are configurable, but
              available main memory in the cluster sets limits. See the
              complete list of configuration parameters in
      <a class="xref" href="mysql-cluster-config-file.html" title="25.4.3 NDB Cluster Configuration Files">
       Section 25.4.3, “NDB Cluster Configuration Files”
      </a>
      . Most
              configuration parameters can be upgraded online. These
              hard limits include:
     </p>
     <div class="itemizedlist">
      <ul class="itemizedlist" style="list-style-type: circle; ">
       <li class="listitem">
        <p>
         Database memory size and index memory size
                (
         <a class="link" href="mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory">
          <code class="literal">
           DataMemory
          </code>
         </a>
         and
         <a class="link" href="mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexmemory">
          <code class="literal">
           IndexMemory
          </code>
         </a>
         ,
                respectively).
        </p>
        <p>
         <a class="link" href="mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory">
          <code class="literal">
           DataMemory
          </code>
         </a>
         is
                allocated as 32KB pages. As each
         <a class="link" href="mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory">
          <code class="literal">
           DataMemory
          </code>
         </a>
         page
                is used, it is assigned to a specific table; once
                allocated, this memory cannot be freed except by
                dropping the table.
        </p>
        <p>
         See
         <a class="xref" href="mysql-cluster-ndbd-definition.html" title="25.4.3.6 Defining NDB Cluster Data Nodes">
          Section 25.4.3.6, “Defining NDB Cluster Data Nodes”
         </a>
         , for
                more information.
        </p>
       </li>
       <li class="listitem">
        <p>
         The maximum number of operations that can be performed
                per transaction is set using the configuration
                parameters
         <a class="link" href="mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnoofconcurrentoperations">
          <code class="literal">
           MaxNoOfConcurrentOperations
          </code>
         </a>
         and
         <a class="link" href="mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooflocaloperations">
          <code class="literal">
           MaxNoOfLocalOperations
          </code>
         </a>
         .
        </p>
        <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
         <div class="admon-title">
          Note
         </div>
         <p>
          Bulk loading,
          <a class="link" href="truncate-table.html" title="15.1.37 TRUNCATE TABLE Statement">
           <code class="literal">
            TRUNCATE
                  TABLE
           </code>
          </a>
          , and
          <a class="link" href="alter-table.html" title="15.1.9 ALTER TABLE Statement">
           <code class="literal">
            ALTER
                  TABLE
           </code>
          </a>
          are handled as special cases by
                  running multiple transactions, and so are not subject
                  to this limitation.
         </p>
        </div>
       </li>
       <li class="listitem">
        <p>
         Different limits related to tables and indexes. For
                example, the maximum number of ordered indexes in the
                cluster is determined by
         <a class="link" href="mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxnooforderedindexes">
          <code class="literal">
           MaxNoOfOrderedIndexes
          </code>
         </a>
         ,
                and the maximum number of ordered indexes per table is
                16.
        </p>
       </li>
      </ul>
     </div>
    </li>
    <li class="listitem">
     <p>
      <b>
       Node and data object maximums.
      </b>
      The following limits apply to numbers of cluster nodes and
              metadata objects:
     </p>
     <div class="itemizedlist">
      <ul class="itemizedlist" style="list-style-type: circle; ">
       <li class="listitem">
        <p>
         The maximum number of data nodes is 144. (In NDB 7.6 and
                earlier, this was 48.)
        </p>
        <p>
         A data node must have a node ID in the range of 1 to
                144, inclusive.
        </p>
        <p>
         Management and API nodes may use node IDs in the range 1
                to 255, inclusive.
        </p>
       </li>
       <li class="listitem">
        <p>
         The total maximum number of nodes in an NDB Cluster is
                255. This number includes all SQL nodes (MySQL Servers),
                API nodes (applications accessing the cluster other than
                MySQL servers), data nodes, and management servers.
        </p>
       </li>
       <li class="listitem">
        <p>
         The maximum number of metadata objects in current
                versions of NDB Cluster is 20320. This limit is
                hard-coded.
        </p>
       </li>
      </ul>
     </div>
     <p>
      See
      <a class="xref" href="mysql-cluster-limitations-resolved.html" title="25.2.7.11 Previous NDB Cluster Issues Resolved in NDB Cluster 8.4">
       Section 25.2.7.11, “Previous NDB Cluster Issues Resolved in NDB Cluster 8.4”
      </a>
      ,
            for more information.
     </p>
    </li>
   </ul>
  </div>
 </div>
 <br/>
</div>
