<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h2 class="title">
      <a name="serialized-dictionary-information">
      </a>
      16.6 Serialized Dictionary Information (SDI)
     </h2>
    </div>
   </div>
  </div>
  <p>
   In addition to storing metadata about database objects in the data
      dictionary, MySQL stores it in serialized form. This data is
      referred to as serialized dictionary information (SDI).
   <code class="literal">
    InnoDB
   </code>
   stores SDI data within its tablespace
      files.
   <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
    <code class="literal">
     NDBCLUSTER
    </code>
   </a>
   stores SDI data in
      the NDB dictionary. Other storage engines store SDI data in
   <code class="filename">
    .sdi
   </code>
   files that are created for a given table
      in the table's database directory. SDI data is generated in a
      compact
   <code class="literal">
    JSON
   </code>
   format.
  </p>
  <p>
   Serialized dictionary information (SDI) is present in all
   <code class="literal">
    InnoDB
   </code>
   tablespace files except for temporary
      tablespace and undo tablespace files. SDI records in an
   <code class="literal">
    InnoDB
   </code>
   tablespace file only describe table and
      tablespace objects contained within the tablespace.
  </p>
  <p>
   SDI data is updated by DDL operations on a table or
   <a class="link" href="check-table.html" title="15.7.3.2 CHECK TABLE Statement">
    <code class="literal">
     CHECK TABLE FOR
      UPGRADE
    </code>
   </a>
   . SDI data is not updated when the MySQL server
      is upgraded to a new release or version.
  </p>
  <p>
   The presence of SDI data provides metadata redundancy. For
      example, if the data dictionary becomes unavailable, object
      metadata can be extracted directly from
   <code class="literal">
    InnoDB
   </code>
   tablespace files using the
   <a class="link" href="ibd2sdi.html" title="6.6.1 ibd2sdi — InnoDB Tablespace SDI Extraction Utility">
    <span class="command">
     <strong>
      ibd2sdi
     </strong>
    </span>
   </a>
   tool.
  </p>
  <p>
   For
   <code class="literal">
    InnoDB
   </code>
   , an SDI record requires a single
      index page, which is 16KB in size by default. However, SDI data is
      compressed to reduce the storage footprint.
  </p>
  <p>
   For partitioned
   <code class="literal">
    InnoDB
   </code>
   tables comprised of
      multiple tablespaces, SDI data is stored in the tablespace file of
      the first partition.
  </p>
  <p>
   The MySQL server uses an internal API that is accessed during
   <a class="link" href="glossary.html#glos_ddl" title="DDL">
    DDL
   </a>
   operations to create and
      maintain SDI records.
  </p>
  <p>
   The
   <a class="link" href="import-table.html" title="15.2.6 IMPORT TABLE Statement">
    <code class="literal">
     IMPORT TABLE
    </code>
   </a>
   statement imports
   <code class="literal">
    MyISAM
   </code>
   tables based on information contained in
   <code class="filename">
    .sdi
   </code>
   files. For more information, see
   <a class="xref" href="import-table.html" title="15.2.6 IMPORT TABLE Statement">
    Section 15.2.6, “IMPORT TABLE Statement”
   </a>
   .
  </p>
 </div>
 <br/>
</div>
