<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h4 class="title">
      <a name="mysql-cluster-disk-data-objects">
      </a>
      25.6.11.1 NDB Cluster Disk Data Objects
     </h4>
    </div>
   </div>
  </div>
  <p>
   NDB Cluster Disk Data storage is implemented using the following
        objects:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      <span class="firstterm">
       Tablespace
      </span>
      : Acts as
            containers for other Disk Data objects. A tablespace
            contains one or more data files and one or more undo log
            file groups.
     </p>
    </li>
    <li class="listitem">
     <p>
      <span class="firstterm">
       Data file
      </span>
      : Stores
            column data. A data file is assigned directly to a
            tablespace.
     </p>
    </li>
    <li class="listitem">
     <p>
      <span class="firstterm">
       Undo log file
      </span>
      :
            Contains undo information required for rolling back
            transactions. Assigned to an undo log file group.
     </p>
    </li>
    <li class="listitem">
     <p>
      <span class="firstterm">
       log file group
      </span>
      :
            Contains one or more undo log files. Assigned to a
            tablespace.
     </p>
    </li>
   </ul>
  </div>
  <p>
   Undo log files and data files are actual files in the file
        system of each data node; by default they are placed in
   <code class="literal">
    ndb_
    <em class="replaceable">
     <code>
      node_id
     </code>
    </em>
    _fs
   </code>
   in
        the
   <em class="replaceable">
    <code>
     DataDir
    </code>
   </em>
   specified in the NDB
        Cluster
   <code class="filename">
    config.ini
   </code>
   file, and where
   <em class="replaceable">
    <code>
     node_id
    </code>
   </em>
   is the data node's node
        ID. It is possible to place these elsewhere by specifying either
        an absolute or relative path as part of the filename when
        creating the undo log or data file. Statements that create these
        files are shown later in this section.
  </p>
  <p>
   Undo log files are used only by Disk Data tables, and are not
        needed or used by
   <code class="literal">
    NDB
   </code>
   tables that are stored
        in memory only.
  </p>
  <p>
   NDB Cluster tablespaces and log file groups are not implemented
        as files.
  </p>
  <p>
   Although not all Disk Data objects are implemented as files,
        they all share the same namespace. This means that
   <span class="emphasis">
    <em>
     each Disk Data object
    </em>
   </span>
   must be uniquely
        named (and not merely each Disk Data object of a given type).
        For example, you cannot have a tablespace and a log file group
        both named
   <code class="literal">
    dd1
   </code>
   .
  </p>
  <p>
   Assuming that you have already set up an NDB Cluster with all
        nodes (including management and SQL nodes), the basic steps for
        creating an NDB Cluster table on disk are as follows:
  </p>
  <a class="indexterm" name="idm46045091697216">
  </a>
  <div class="orderedlist">
   <ol class="orderedlist" type="1">
    <li class="listitem">
     <p>
      Create a log file group, and assign one or more undo log
            files to it (an undo log file is also sometimes referred to
            as an
      <span class="firstterm">
       undofile
      </span>
      ).
     </p>
    </li>
    <li class="listitem">
     <p>
      Create a tablespace; assign the log file group, as well as
            one or more data files, to the tablespace.
     </p>
    </li>
    <li class="listitem">
     <p>
      Create a Disk Data table that uses this tablespace for data
            storage.
     </p>
    </li>
   </ol>
  </div>
  <p>
   Each of these tasks can be accomplished using SQL statements in
        the
   <a class="link" href="mysql.html" title="6.5.1 mysql — The MySQL Command-Line Client">
    <span class="command">
     <strong>
      mysql
     </strong>
    </span>
   </a>
   client or other MySQL client
        application, as shown in the example that follows.
  </p>
  <div class="orderedlist">
   <ol class="orderedlist" type="1">
    <li class="listitem">
     <p>
      <a class="indexterm" name="idm46045091687456">
      </a>
      We create a log file group named
      <code class="literal">
       lg_1
      </code>
      using
      <a class="link" href="create-logfile-group.html" title="15.1.16 CREATE LOGFILE GROUP Statement">
       <code class="literal">
        CREATE LOGFILE GROUP
       </code>
      </a>
      .
            This log file group is to be made up of two undo log files,
            which we name
      <code class="filename">
       undo_1.log
      </code>
      and
      <code class="filename">
       undo_2.log
      </code>
      , whose initial sizes are 16
            MB and 12 MB, respectively. (The default initial size for an
            undo log file is 128 MB.) Optionally, you can also specify a
            size for the log file group's undo buffer, or permit it
            to assume the default value of 8 MB. In this example, we set
            the UNDO buffer's size at 2 MB. A log file group must
            be created with an undo log file; so we add
      <code class="filename">
       undo_1.log
      </code>
      to
      <code class="literal">
       lg_1
      </code>
      in this
      <a class="link" href="create-logfile-group.html" title="15.1.16 CREATE LOGFILE GROUP Statement">
       <code class="literal">
        CREATE LOGFILE GROUP
       </code>
      </a>
      statement:
     </p>
     <div class="copytoclipboard-wrapper">
      <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa82491990"><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">LOGFILE</span> <span class="token keyword">GROUP</span> lg_1
    <span class="token keyword">ADD</span> <span class="token keyword">UNDOFILE</span> <span class="token string">'undo_1.log'</span>
    <span class="token keyword">INITIAL_SIZE</span> 16M
    <span class="token keyword">UNDO_BUFFER_SIZE</span> 2M
    <span class="token keyword">ENGINE</span> <span class="token keyword">NDBCLUSTER</span><span class="token punctuation">;</span></code></pre>
     </div>
     <p>
      To add
      <code class="filename">
       undo_2.log
      </code>
      to the log file
            group, use the following
      <a class="link" href="alter-logfile-group.html" title="15.1.6 ALTER LOGFILE GROUP Statement">
       <code class="literal">
        ALTER LOGFILE
            GROUP
       </code>
      </a>
      statement:
     </p>
     <div class="copytoclipboard-wrapper">
      <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa34569758"><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">ALTER</span> <span class="token keyword">LOGFILE</span> <span class="token keyword">GROUP</span> lg_1
    <span class="token keyword">ADD</span> <span class="token keyword">UNDOFILE</span> <span class="token string">'undo_2.log'</span>
    <span class="token keyword">INITIAL_SIZE</span> 12M
    <span class="token keyword">ENGINE</span> <span class="token keyword">NDBCLUSTER</span><span class="token punctuation">;</span></code></pre>
     </div>
     <p>
      Some items of note:
     </p>
     <div class="itemizedlist">
      <ul class="itemizedlist" style="list-style-type: disc; ">
       <li class="listitem">
        <p>
         The
         <code class="filename">
          .log
         </code>
         file extension used here
                is not required. We employ it merely to make the log
                files easily recognizable.
        </p>
       </li>
       <li class="listitem">
        <p>
         Every
         <a class="link" href="create-logfile-group.html" title="15.1.16 CREATE LOGFILE GROUP Statement">
          <code class="literal">
           CREATE LOGFILE
                GROUP
          </code>
         </a>
         and
         <a class="link" href="alter-logfile-group.html" title="15.1.6 ALTER LOGFILE GROUP Statement">
          <code class="literal">
           ALTER LOGFILE
                GROUP
          </code>
         </a>
         statement must include an
         <code class="literal">
          ENGINE
         </code>
         option. The only permitted
                values for this option are
         <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
          <code class="literal">
           NDBCLUSTER
          </code>
         </a>
         and
         <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
          <code class="literal">
           NDB
          </code>
         </a>
         .
        </p>
        <div class="important" style="margin-left: 0.5in; margin-right: 0.5in;">
         <div class="admon-title">
          Important
         </div>
         <p>
          There can exist at most one log file group in the same
                  NDB Cluster at any given time.
         </p>
        </div>
       </li>
       <li class="listitem">
        <p>
         When you add an undo log file to a log file group using
         <code class="literal">
          ADD UNDOFILE
                '
          <em class="replaceable">
           <code>
            filename
           </code>
          </em>
          '
         </code>
         , a file
                with the name
         <em class="replaceable">
          <code>
           filename
          </code>
         </em>
         is
                created in the
         <code class="literal">
          ndb_
          <em class="replaceable">
           <code>
            node_id
           </code>
          </em>
          _fs
         </code>
         directory within the
         <a class="link" href="mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datadir">
          <code class="literal">
           DataDir
          </code>
         </a>
         of each
                data node in the cluster, where
         <em class="replaceable">
          <code>
           node_id
          </code>
         </em>
         is the node ID of the
                data node. Each undo log file is of the size specified
                in the SQL statement. For example, if an NDB Cluster has
                4 data nodes, then the
         <a class="link" href="alter-logfile-group.html" title="15.1.6 ALTER LOGFILE GROUP Statement">
          <code class="literal">
           ALTER
                LOGFILE GROUP
          </code>
         </a>
         statement just shown creates 4
                undo log files, 1 each on in the data directory of each
                of the 4 data nodes; each of these files is named
         <code class="filename">
          undo_2.log
         </code>
         and each file is 12 MB
                in size.
        </p>
       </li>
       <li class="listitem">
        <p>
         <code class="literal">
          UNDO_BUFFER_SIZE
         </code>
         is limited by the
                amount of system memory available.
        </p>
       </li>
       <li class="listitem">
        <p>
         See
         <a class="xref" href="create-logfile-group.html" title="15.1.16 CREATE LOGFILE GROUP Statement">
          Section 15.1.16, “CREATE LOGFILE GROUP Statement”
         </a>
         , and
         <a class="xref" href="alter-logfile-group.html" title="15.1.6 ALTER LOGFILE GROUP Statement">
          Section 15.1.6, “ALTER LOGFILE GROUP Statement”
         </a>
         , for more
                information about these statements.
        </p>
       </li>
      </ul>
     </div>
    </li>
    <li class="listitem">
     <p>
      <a class="indexterm" name="idm46045091652560">
      </a>
      Now we can create a tablespace—an abstract container
            for files used by Disk Data tables to store data. A
            tablespace is associated with a particular log file group;
            when creating a new tablespace, you must specify the log
            file group it uses for undo logging. You must also specify
            at least one data file; you can add more data files to the
            tablespace after the tablespace is created. It is also
            possible to drop data files from a tablespace (see example
            later in this section).
     </p>
     <p>
      Assume that we wish to create a tablespace named
      <code class="literal">
       ts_1
      </code>
      which uses
      <code class="literal">
       lg_1
      </code>
      as its log file group. We want the tablespace to contain two
            data files, named
      <code class="filename">
       data_1.dat
      </code>
      and
      <code class="filename">
       data_2.dat
      </code>
      , whose initial sizes are 32
            MB and 48 MB, respectively. (The default value for
      <code class="literal">
       INITIAL_SIZE
      </code>
      is 128 MB.) We can do this
            using two SQL statements, as shown here:
     </p>
     <div class="copytoclipboard-wrapper">
      <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa84953372"><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">TABLESPACE</span> ts_1
    <span class="token keyword">ADD</span> <span class="token keyword">DATAFILE</span> <span class="token string">'data_1.dat'</span>
    <span class="token keyword">USE</span> <span class="token keyword">LOGFILE</span> <span class="token keyword">GROUP</span> lg_1
    <span class="token keyword">INITIAL_SIZE</span> 32M
    <span class="token keyword">ENGINE</span> <span class="token keyword">NDBCLUSTER</span><span class="token punctuation">;</span>

<span class="token keyword">ALTER</span> <span class="token keyword">TABLESPACE</span> ts_1
    <span class="token keyword">ADD</span> <span class="token keyword">DATAFILE</span> <span class="token string">'data_2.dat'</span>
    <span class="token keyword">INITIAL_SIZE</span> 48M<span class="token punctuation">;</span></code></pre>
     </div>
     <p>
      The
      <a class="link" href="create-tablespace.html" title="15.1.21 CREATE TABLESPACE Statement">
       <code class="literal">
        CREATE TABLESPACE
       </code>
      </a>
      statement creates a tablespace
      <code class="literal">
       ts_1
      </code>
      with
            the data file
      <code class="filename">
       data_1.dat
      </code>
      , and
            associates
      <code class="literal">
       ts_1
      </code>
      with log file group
      <code class="literal">
       lg_1
      </code>
      . The
      <a class="link" href="alter-tablespace.html" title="15.1.10 ALTER TABLESPACE Statement">
       <code class="literal">
        ALTER
            TABLESPACE
       </code>
      </a>
      adds the second data file
            (
      <code class="filename">
       data_2.dat
      </code>
      ).
     </p>
     <p>
      Some items of note:
     </p>
     <div class="itemizedlist">
      <ul class="itemizedlist" style="list-style-type: disc; ">
       <li class="listitem">
        <p>
         As is the case with the
         <code class="filename">
          .log
         </code>
         file
                extension used in this example for undo log files, there
                is no special significance for the
         <code class="filename">
          .dat
         </code>
         file extension; it is used
                merely for easy recognition.
        </p>
       </li>
       <li class="listitem">
        <p>
         When you add a data file to a tablespace using
         <code class="literal">
          ADD DATAFILE
                '
          <em class="replaceable">
           <code>
            filename
           </code>
          </em>
          '
         </code>
         , a file
                with the name
         <em class="replaceable">
          <code>
           filename
          </code>
         </em>
         is
                created in the
         <code class="literal">
          ndb_
          <em class="replaceable">
           <code>
            node_id
           </code>
          </em>
          _fs
         </code>
         directory within the
         <a class="link" href="mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datadir">
          <code class="literal">
           DataDir
          </code>
         </a>
         of each
                data node in the cluster, where
         <em class="replaceable">
          <code>
           node_id
          </code>
         </em>
         is the node ID of the
                data node. Each data file is of the size specified in
                the SQL statement. For example, if an NDB Cluster has 4
                data nodes, then the
         <a class="link" href="alter-tablespace.html" title="15.1.10 ALTER TABLESPACE Statement">
          <code class="literal">
           ALTER
                TABLESPACE
          </code>
         </a>
         statement just shown creates 4 data
                files, 1 each in the data directory of each of the 4
                data nodes; each of these files is named
         <code class="filename">
          data_2.dat
         </code>
         , and each file is 48 MB
                in size.
        </p>
       </li>
       <li class="listitem">
        <p>
         <code class="literal">
          NDB
         </code>
         reserves 4% of each tablespace
                for use during data node restarts. This space is not
                available for storing data.
        </p>
       </li>
       <li class="listitem">
        <p>
         <a class="link" href="create-tablespace.html" title="15.1.21 CREATE TABLESPACE Statement">
          <code class="literal">
           CREATE TABLESPACE
          </code>
         </a>
         statements must contain an
         <code class="literal">
          ENGINE
         </code>
         clause; only tables using the same storage engine as the
                tablespace can be created in the tablespace. For
         <code class="literal">
          NDB
         </code>
         tablespaces,
         <a class="link" href="alter-tablespace.html" title="15.1.10 ALTER TABLESPACE Statement">
          <code class="literal">
           ALTER TABLESPACE
          </code>
         </a>
         accepts
                an
         <code class="literal">
          ENGINE
         </code>
         clause only for
         <code class="literal">
          ALTER TABLESPACE ... ADD DATAFILE
         </code>
         ;
         <code class="literal">
          ENGINE
         </code>
         is rejected for any other
         <code class="literal">
          ALTER TABLESPACE
         </code>
         statement. For
         <code class="literal">
          NDB
         </code>
         tablespaces, the only permitted
                values for the
         <code class="literal">
          ENGINE
         </code>
         option are
         <code class="literal">
          NDBCLUSTER
         </code>
         and
         <code class="literal">
          NDB
         </code>
         .
        </p>
       </li>
       <li class="listitem">
        <p>
         Allocation of extents is performed in round-robin
                fashion among all data files used by a given tablespace.
        </p>
       </li>
       <li class="listitem">
        <p>
         For more information about the
         <a class="link" href="create-tablespace.html" title="15.1.21 CREATE TABLESPACE Statement">
          <code class="literal">
           CREATE TABLESPACE
          </code>
         </a>
         and
         <a class="link" href="alter-tablespace.html" title="15.1.10 ALTER TABLESPACE Statement">
          <code class="literal">
           ALTER TABLESPACE
          </code>
         </a>
         statements, see
         <a class="xref" href="create-tablespace.html" title="15.1.21 CREATE TABLESPACE Statement">
          Section 15.1.21, “CREATE TABLESPACE Statement”
         </a>
         , and
         <a class="xref" href="alter-tablespace.html" title="15.1.10 ALTER TABLESPACE Statement">
          Section 15.1.10, “ALTER TABLESPACE Statement”
         </a>
         .
        </p>
       </li>
      </ul>
     </div>
    </li>
    <li class="listitem">
     <p>
      <a class="indexterm" name="idm46045091608576">
      </a>
      Now it is possible to create a table whose unindexed columns
            are stored on disk using files in tablespace
      <code class="literal">
       ts_1
      </code>
      :
     </p>
     <div class="copytoclipboard-wrapper">
      <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa95716006"><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> dt_1 <span class="token punctuation">(</span>
    member_id <span class="token datatype">INT</span> <span class="token keyword">UNSIGNED</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span> <span class="token keyword">AUTO_INCREMENT</span> <span class="token keyword">PRIMARY</span> <span class="token keyword">KEY</span><span class="token punctuation">,</span>
    last_name <span class="token datatype">VARCHAR</span><span class="token punctuation">(</span><span class="token number">50</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
    first_name <span class="token datatype">VARCHAR</span><span class="token punctuation">(</span><span class="token number">50</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
    dob <span class="token datatype">DATE</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
    joined <span class="token datatype">DATE</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span>
    <span class="token keyword">INDEX</span><span class="token punctuation">(</span>last_name<span class="token punctuation">,</span> first_name<span class="token punctuation">)</span>
    <span class="token punctuation">)</span>
    <span class="token keyword">TABLESPACE</span> ts_1 <span class="token keyword">STORAGE</span> <span class="token keyword">DISK</span>
    <span class="token keyword">ENGINE</span> <span class="token keyword">NDBCLUSTER</span><span class="token punctuation">;</span></code></pre>
     </div>
     <p>
      <code class="literal">
       TABLESPACE ts_1 STORAGE DISK
      </code>
      tells the
      <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
       <code class="literal">
        NDB
       </code>
      </a>
      storage engine to use
            tablespace
      <code class="literal">
       ts_1
      </code>
      for data storage on disk.
     </p>
     <p>
      Once table
      <code class="literal">
       ts_1
      </code>
      has been created as
            shown, you can perform
      <a class="link" href="insert.html" title="15.2.7 INSERT Statement">
       <code class="literal">
        INSERT
       </code>
      </a>
      ,
      <a class="link" href="select.html" title="15.2.13 SELECT Statement">
       <code class="literal">
        SELECT
       </code>
      </a>
      ,
      <a class="link" href="update.html" title="15.2.17 UPDATE Statement">
       <code class="literal">
        UPDATE
       </code>
      </a>
      , and
      <a class="link" href="delete.html" title="15.2.2 DELETE Statement">
       <code class="literal">
        DELETE
       </code>
      </a>
      statements on it just
            as you would with any other MySQL table.
     </p>
     <p>
      It is also possible to specify whether an individual column
            is stored on disk or in memory by using a
      <code class="literal">
       STORAGE
      </code>
      clause as part of the
            column's definition in a
      <a class="link" href="create-table.html" title="15.1.20 CREATE TABLE Statement">
       <code class="literal">
        CREATE
            TABLE
       </code>
      </a>
      or
      <a class="link" href="alter-table.html" title="15.1.9 ALTER TABLE Statement">
       <code class="literal">
        ALTER
            TABLE
       </code>
      </a>
      statement.
      <code class="literal">
       STORAGE DISK
      </code>
      causes the column to be stored on disk, and
      <code class="literal">
       STORAGE
            MEMORY
      </code>
      causes in-memory storage to be used. See
      <a class="xref" href="create-table.html" title="15.1.20 CREATE TABLE Statement">
       Section 15.1.20, “CREATE TABLE Statement”
      </a>
      , for more information.
     </p>
    </li>
   </ol>
  </div>
  <p>
   You can obtain information about the
   <code class="literal">
    NDB
   </code>
   disk
        data files and undo log files just created by querying the
   <a class="link" href="information-schema-files-table.html" title="28.3.15 The INFORMATION_SCHEMA FILES Table">
    <code class="literal">
     FILES
    </code>
   </a>
   table in the
   <code class="literal">
    INFORMATION_SCHEMA
   </code>
   database, as shown here:
  </p>
  <div class="copytoclipboard-wrapper">
   <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa48927252"><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 prompt">mysql&gt;</span> <span class="token keyword">SELECT</span>
              FILE_NAME <span class="token keyword">AS</span> <span class="token keyword">File</span><span class="token punctuation">,</span> FILE_TYPE <span class="token keyword">AS</span> <span class="token keyword">Type</span><span class="token punctuation">,</span>
              TABLESPACE_NAME <span class="token keyword">AS</span> <span class="token keyword">Tablespace</span><span class="token punctuation">,</span> <span class="token keyword">TABLE_NAME</span> <span class="token keyword">AS</span> <span class="token keyword">Name</span><span class="token punctuation">,</span>
              LOGFILE_GROUP_NAME <span class="token keyword">AS</span> <span class="token string">'File group'</span><span class="token punctuation">,</span>
              FREE_EXTENTS <span class="token keyword">AS</span> Free<span class="token punctuation">,</span> TOTAL_EXTENTS <span class="token keyword">AS</span> Total
          <span class="token keyword">FROM</span> INFORMATION_SCHEMA<span class="token punctuation">.</span>FILES
          <span class="token keyword">WHERE</span> <span class="token keyword">ENGINE</span><span class="token operator">=</span><span class="token string">'ndbcluster'</span><span class="token punctuation">;</span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span>
<span class="token output"><span class="token punctuation">|</span> File         <span class="token punctuation">|</span> Type     <span class="token punctuation">|</span> Tablespace <span class="token punctuation">|</span> Name <span class="token punctuation">|</span> File group <span class="token punctuation">|</span> Free <span class="token punctuation">|</span> Total   <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span>
<span class="token output"><span class="token punctuation">|</span> ./undo_1.log <span class="token punctuation">|</span> UNDO LOG <span class="token punctuation">|</span> lg_1       <span class="token punctuation">|</span> NULL <span class="token punctuation">|</span> lg_1       <span class="token punctuation">|</span>    0 <span class="token punctuation">|</span> 4194304 <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> ./undo_2.log <span class="token punctuation">|</span> UNDO LOG <span class="token punctuation">|</span> lg_1       <span class="token punctuation">|</span> NULL <span class="token punctuation">|</span> lg_1       <span class="token punctuation">|</span>    0 <span class="token punctuation">|</span> 3145728 <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> ./data_1.dat <span class="token punctuation">|</span> DATAFILE <span class="token punctuation">|</span> ts_1       <span class="token punctuation">|</span> NULL <span class="token punctuation">|</span> lg_1       <span class="token punctuation">|</span>   32 <span class="token punctuation">|</span>      32 <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> ./data_2.dat <span class="token punctuation">|</span> DATAFILE <span class="token punctuation">|</span> ts_1       <span class="token punctuation">|</span> NULL <span class="token punctuation">|</span> lg_1       <span class="token punctuation">|</span>   48 <span class="token punctuation">|</span>      48 <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span>
<span class="token output">4 rows in set (0.00 sec)</span></code></pre>
  </div>
  <p>
   For more information and examples, see
   <a class="xref" href="information-schema-files-table.html" title="28.3.15 The INFORMATION_SCHEMA FILES Table">
    Section 28.3.15, “The INFORMATION_SCHEMA FILES Table”
   </a>
   .
  </p>
  <p>
   <b>
    Indexing of columns implicitly stored on disk.
   </b>
   For table
   <code class="literal">
    dt_1
   </code>
   as defined in the example
          just shown, only the
   <code class="literal">
    dob
   </code>
   and
   <code class="literal">
    joined
   </code>
   columns are stored on disk. This is
          because there are indexes on the
   <code class="literal">
    id
   </code>
   ,
   <code class="literal">
    last_name
   </code>
   , and
   <code class="literal">
    first_name
   </code>
   columns, and so data belonging
          to these columns is stored in RAM. Only nonindexed columns can
          be held on disk; indexes and indexed column data continue to
          be stored in memory. This tradeoff between the use of indexes
          and conservation of RAM is something you must keep in mind as
          you design Disk Data tables.
  </p>
  <p>
   You cannot add an index to a column that has been explicitly
        declared
   <code class="literal">
    STORAGE DISK
   </code>
   , without first changing
        its storage type to
   <code class="literal">
    MEMORY
   </code>
   ; any attempt to do
        so fails with an error. A column which
   <span class="emphasis">
    <em>
     implicitly
    </em>
   </span>
   uses disk storage can be
        indexed; when this is done, the column's storage type is
        changed to
   <code class="literal">
    MEMORY
   </code>
   automatically. By
   <span class="quote">
    “
    <span class="quote">
     implicitly
    </span>
    ”
   </span>
   , we mean a column whose storage type
        is not declared, but which is which inherited from the parent
        table. In the following CREATE TABLE statement (using the
        tablespace
   <code class="literal">
    ts_1
   </code>
   defined previously), columns
   <code class="literal">
    c2
   </code>
   and
   <code class="literal">
    c3
   </code>
   use disk storage
        implicitly:
  </p>
  <div class="copytoclipboard-wrapper">
   <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa54797376"><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 prompt">mysql&gt;</span> <span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> ti <span class="token punctuation">(</span>
<span class="token prompt">    -&gt;</span>     c1 <span class="token datatype">INT</span> <span class="token keyword">PRIMARY</span> <span class="token keyword">KEY</span><span class="token punctuation">,</span>
<span class="token prompt">    -&gt;</span>     c2 <span class="token datatype">INT</span><span class="token punctuation">,</span>
<span class="token prompt">    -&gt;</span>     c3 <span class="token datatype">INT</span><span class="token punctuation">,</span>
<span class="token prompt">    -&gt;</span>     c4 <span class="token datatype">INT</span>
<span class="token prompt">    -&gt;</span> <span class="token punctuation">)</span>
<span class="token prompt">    -&gt;</span>     <span class="token keyword">STORAGE</span> <span class="token keyword">DISK</span>
<span class="token prompt">    -&gt;</span>     <span class="token keyword">TABLESPACE</span> ts_1
<span class="token prompt">    -&gt;</span>     <span class="token keyword">ENGINE</span> <span class="token keyword">NDBCLUSTER</span><span class="token punctuation">;</span>
<span class="token output">Query OK, 0 rows affected (1.31 sec)</span></code></pre>
  </div>
  <p>
   Because
   <code class="literal">
    c2
   </code>
   ,
   <code class="literal">
    c3
   </code>
   , and
   <code class="literal">
    c4
   </code>
   are themselves not declared with
   <code class="literal">
    STORAGE DISK
   </code>
   , it is possible to index them.
        Here, we add indexes to
   <code class="literal">
    c2
   </code>
   and
   <code class="literal">
    c3
   </code>
   , using, respectively,
   <code class="literal">
    CREATE
        INDEX
   </code>
   and
   <code class="literal">
    ALTER TABLE
   </code>
   :
  </p>
  <div class="copytoclipboard-wrapper">
   <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa22089897"><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 prompt">mysql&gt;</span> <span class="token keyword">CREATE</span> <span class="token keyword">INDEX</span> i1 <span class="token keyword">ON</span> ti<span class="token punctuation">(</span>c2<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token output">Query OK, 0 rows affected (2.72 sec)</span>
<span class="token output">Records: 0  Duplicates: 0  Warnings: 0</span>

<span class="token prompt">mysql&gt;</span> <span class="token keyword">ALTER</span> <span class="token keyword">TABLE</span> ti <span class="token keyword">ADD</span> <span class="token keyword">INDEX</span> i2<span class="token punctuation">(</span>c3<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token output">Query OK, 0 rows affected (0.92 sec)</span>
<span class="token output">Records: 0  Duplicates: 0  Warnings: 0</span></code></pre>
  </div>
  <p>
   <a class="link" href="show-create-table.html" title="15.7.7.11 SHOW CREATE TABLE Statement">
    <code class="literal">
     SHOW CREATE TABLE
    </code>
   </a>
   confirms that
        the indexes were added.
  </p>
  <div class="copytoclipboard-wrapper">
   <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa3283236"><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 prompt">mysql&gt;</span> <span class="token keyword">SHOW</span> <span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> ti\G
<span class="token output"><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span> 1. row <span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span><span class="token punctuation">*</span>
       Table<span class="token punctuation">:</span> ti
Create Table<span class="token punctuation">:</span> CREATE TABLE `ti` (
  `c1` int(11) NOT NULL,
  `c2` int(11) DEFAULT NULL,
  `c3` int(11) DEFAULT NULL,
  `c4` int(11) DEFAULT NULL,
  PRIMARY KEY (`c1`),
  KEY `i1` (`c2`),
  KEY `i2` (`c3`)
) /<span class="token punctuation">*</span>!50100 TABLESPACE `ts_1` STORAGE DISK <span class="token punctuation">*</span>/ ENGINE=ndbcluster DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
</span><span class="token output">1 row in set (0.00 sec)</span></code></pre>
  </div>
  <p>
   You can see using
   <a class="link" href="mysql-cluster-programs-ndb-desc.html" title="25.5.9 ndb_desc — Describe NDB Tables">
    <span class="command">
     <strong>
      ndb_desc
     </strong>
    </span>
   </a>
   that the indexed
        columns (emphasized text) now use in-memory rather than on-disk
        storage:
  </p>
  <div class="copytoclipboard-wrapper">
   <pre class="programlisting language-terminal"><div class="docs-select-all right" id="sa48655371"><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-terminal"><span class="token prompt">$&gt; </span><span class="token command">./ndb_desc</span> <span class="token property">-d</span> test t1
<span class="token property">--</span> t1 <span class="token property">--</span>
Version<span class="token punctuation">:</span> 33554433
Fragment type<span class="token punctuation">:</span> HashMapPartition
K Value<span class="token punctuation">:</span> 6
Min load factor<span class="token punctuation">:</span> 78
Max load factor<span class="token punctuation">:</span> 80
Temporary table<span class="token punctuation">:</span> no
Number of attributes<span class="token punctuation">:</span> 4
Number of primary keys<span class="token punctuation">:</span> 1
Length of frm data<span class="token punctuation">:</span> 317
Max Rows<span class="token punctuation">:</span> 0
Row Checksum<span class="token punctuation">:</span> 1
Row GCI<span class="token punctuation">:</span> 1
SingleUserMode<span class="token punctuation">:</span> 0
ForceVarPart<span class="token punctuation">:</span> 1
PartitionCount<span class="token punctuation">:</span> 4
FragmentCount<span class="token punctuation">:</span> 4
PartitionBalance<span class="token punctuation">:</span> FOR_RP_BY_LDM
ExtraRowGciBits<span class="token punctuation">:</span> 0
ExtraRowAuthorBits<span class="token punctuation">:</span> 0
TableStatus<span class="token punctuation">:</span> Retrieved
Table options<span class="token punctuation">:</span>
HashMap<span class="token punctuation">:</span> DEFAULT-HASHMAP-3840-4
<span class="token property">--</span> Attributes <span class="token property">--</span>
c1 Int PRIMARY KEY DISTRIBUTION KEY AT<span class="token attr-value"><span class="token punctuation">=</span>FIXED</span> ST<span class="token attr-value"><span class="token punctuation">=</span>MEMORY</span>
<em>c2 Int NULL AT<span class="token attr-value"><span class="token punctuation">=</span>FIXED</span> ST<span class="token attr-value"><span class="token punctuation">=</span>MEMORY</span>
c3 Int NULL AT<span class="token attr-value"><span class="token punctuation">=</span>FIXED</span> ST<span class="token attr-value"><span class="token punctuation">=</span>MEMORY</span></em><span class="token attr-value"></span>
c4 Int NULL AT<span class="token attr-value"><span class="token punctuation">=</span>FIXED</span> ST<span class="token attr-value"><span class="token punctuation">=</span>DISK</span>
<span class="token property">--</span> Indexes <span class="token property">--</span>
PRIMARY KEY<span class="token punctuation">(</span>c1<span class="token punctuation">)</span> - UniqueHashIndex
i2<span class="token punctuation">(</span>c3<span class="token punctuation">)</span> - OrderedIndex
PRIMARY<span class="token punctuation">(</span>c1<span class="token punctuation">)</span> - OrderedIndex
i1<span class="token punctuation">(</span>c2<span class="token punctuation">)</span> - OrderedIndex</code></pre>
  </div>
  <p>
   <b>
    Performance note.
   </b>
   The performance of a cluster using Disk Data storage is
          greatly improved if Disk Data files are kept on a separate
          physical disk from the data node file system. This must be
          done for each data node in the cluster to derive any
          noticeable benefit.
  </p>
  <p>
   You can use absolute and relative file system paths with
   <code class="literal">
    ADD UNDOFILE
   </code>
   and
   <code class="literal">
    ADD
        DATAFILE
   </code>
   ; relative paths are calculated with respect
        to the data node's data directory.
  </p>
  <p>
   A log file group, a tablespace, and any Disk Data tables using
        these must be created in a particular order. This is also true
        for dropping these objects, subject to the following
        constraints:
  </p>
  <a class="indexterm" name="idm46045091537376">
  </a>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      A log file group cannot be dropped as long as any
            tablespaces use it.
     </p>
    </li>
    <li class="listitem">
     <p>
      A tablespace cannot be dropped as long as it contains any
            data files.
     </p>
    </li>
    <li class="listitem">
     <p>
      You cannot drop any data files from a tablespace as long as
            there remain any tables which are using the tablespace.
     </p>
    </li>
    <li class="listitem">
     <p>
      It is not possible to drop files created in association with
            a different tablespace other than the one with which the
            files were created.
     </p>
    </li>
   </ul>
  </div>
  <p>
   For example, to drop all the objects created so far in this
        section, you can use the following statements:
  </p>
  <div class="copytoclipboard-wrapper">
   <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa23503033"><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 prompt">mysql&gt;</span> <span class="token keyword">DROP</span> <span class="token keyword">TABLE</span> dt_1<span class="token punctuation">;</span>

<span class="token prompt">mysql&gt;</span> <span class="token keyword">ALTER</span> <span class="token keyword">TABLESPACE</span> ts_1
<span class="token prompt">    -&gt;</span> <span class="token keyword">DROP</span> <span class="token keyword">DATAFILE</span> <span class="token string">'data_2.dat'</span><span class="token punctuation">;</span>

<span class="token prompt">mysql&gt;</span> <span class="token keyword">ALTER</span> <span class="token keyword">TABLESPACE</span> ts_1
<span class="token prompt">    -&gt;</span> <span class="token keyword">DROP</span> <span class="token keyword">DATAFILE</span> <span class="token string">'data_1.dat'</span><span class="token punctuation">;</span>

<span class="token prompt">mysql&gt;</span> <span class="token keyword">DROP</span> <span class="token keyword">TABLESPACE</span> ts_1<span class="token punctuation">;</span>

<span class="token prompt">mysql&gt;</span> <span class="token keyword">DROP</span> <span class="token keyword">LOGFILE</span> <span class="token keyword">GROUP</span> lg_1<span class="token punctuation">;</span></code></pre>
  </div>
  <p>
   These statements must be performed in the order shown, except
        that the two
   <code class="literal">
    ALTER TABLESPACE ... DROP
        DATAFILE
   </code>
   statements may be executed in either order.
  </p>
  <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
   <div class="admon-title">
    Note
   </div>
   <p>
    Older versions of NDB Cluster used an
    <code class="literal">
     ENGINE
    </code>
    clause with
    <code class="literal">
     ALTER
          TABLESPACE ... DROP DATAFILE
    </code>
    and
    <code class="literal">
     DROP
          TABLESPACE
    </code>
    . In NDB 8.4 and later, it is no longer
          supported with either of these statements.
   </p>
  </div>
 </div>
 <br/>
</div>
