<div id="docs-body">
 <div class="chapter">
  <div class="titlepage">
   <div>
    <div>
     <h1 class="title">
      <a name="partitioning">
      </a>
      Chapter 26 Partitioning
     </h1>
    </div>
   </div>
  </div>
  <div class="toc">
   <p>
    <b>
     Table of Contents
    </b>
   </p>
   <dl class="toc">
    <dt>
     <span class="section">
      <a href="partitioning-overview.html">
       26.1 Overview of Partitioning in MySQL
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="partitioning-types.html">
       26.2 Partitioning Types
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="partitioning-range.html">
         26.2.1 RANGE Partitioning
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-list.html">
         26.2.2 LIST Partitioning
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-columns.html">
         26.2.3 COLUMNS Partitioning
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-hash.html">
         26.2.4 HASH Partitioning
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-key.html">
         26.2.5 KEY Partitioning
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-subpartitions.html">
         26.2.6 Subpartitioning
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-handling-nulls.html">
         26.2.7 How MySQL Partitioning Handles NULL
        </a>
       </span>
      </dt>
     </dl>
    </dd>
    <dt>
     <span class="section">
      <a href="partitioning-management.html">
       26.3 Partition Management
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="partitioning-management-range-list.html">
         26.3.1 Management of RANGE and LIST Partitions
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-management-hash-key.html">
         26.3.2 Management of HASH and KEY Partitions
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-management-exchange.html">
         26.3.3 Exchanging Partitions and Subpartitions with Tables
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-maintenance.html">
         26.3.4 Maintenance of Partitions
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-info.html">
         26.3.5 Obtaining Information About Partitions
        </a>
       </span>
      </dt>
     </dl>
    </dd>
    <dt>
     <span class="section">
      <a href="partitioning-pruning.html">
       26.4 Partition Pruning
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="partitioning-selection.html">
       26.5 Partition Selection
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="partitioning-limitations.html">
       26.6 Restrictions and Limitations on Partitioning
      </a>
     </span>
    </dt>
    <dd>
     <dl>
      <dt>
       <span class="section">
        <a href="partitioning-limitations-partitioning-keys-unique-keys.html">
         26.6.1 Partitioning Keys, Primary Keys, and Unique Keys
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-limitations-storage-engines.html">
         26.6.2 Partitioning Limitations Relating to Storage Engines
        </a>
       </span>
      </dt>
      <dt>
       <span class="section">
        <a href="partitioning-limitations-functions.html">
         26.6.3 Partitioning Limitations Relating to Functions
        </a>
       </span>
      </dt>
     </dl>
    </dd>
   </dl>
  </div>
  <a class="indexterm" name="idm46045085018608">
  </a>
  <a class="indexterm" name="idm46045085017536">
  </a>
  <a class="indexterm" name="idm46045085016464">
  </a>
  <a class="indexterm" name="idm46045085014976">
  </a>
  <a class="indexterm" name="idm46045085013488">
  </a>
  <p>
   This chapter discusses
   <span class="firstterm">
    user-defined
    partitioning
   </span>
   .
  </p>
  <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
   <div class="admon-title">
    Note
   </div>
   <p>
    Table partitioning differs from partitioning as used by window
      functions. For information about window functions, see
    <a class="xref" href="window-functions.html" title="14.20 Window Functions">
     Section 14.20, “Window Functions”
    </a>
    .
   </p>
  </div>
  <p>
   In MySQL 8.4, partitioning support is provided by the
   <a class="link" href="innodb-storage-engine.html" title="Chapter 17 The InnoDB Storage Engine">
    <code class="literal">
     InnoDB
    </code>
   </a>
   and
   <a class="link" href="mysql-cluster.html" title="Chapter 25 MySQL NDB Cluster 8.4">
    <code class="literal">
     NDB
    </code>
   </a>
   storage engines.
  </p>
  <p>
   MySQL 8.4 does not currently support partitioning of
    tables using any storage engine other than
   <code class="literal">
    InnoDB
   </code>
   or
   <code class="literal">
    NDB
   </code>
   , such as
   <a class="link" href="myisam-storage-engine.html" title="18.2 The MyISAM Storage Engine">
    <code class="literal">
     MyISAM
    </code>
   </a>
   . An attempt to create a
    partitioned tables using a storage engine that does not supply
    native partitioning support fails with
   <a class="ulink" href="/doc/mysql-errors/8.4/en/server-error-reference.html#error_er_check_not_implemented" target="_top">
    <code class="literal">
     ER_CHECK_NOT_IMPLEMENTED
    </code>
   </a>
   .
  </p>
  <p>
   MySQL 8.4 Community binaries provided by Oracle include
    partitioning support provided by the
   <code class="literal">
    InnoDB
   </code>
   and
   <code class="literal">
    NDB
   </code>
   storage engines. For information about
    partitioning support offered in MySQL Enterprise Edition binaries, see
   <a class="xref" href="mysql-enterprise.html" title="Chapter 32 MySQL Enterprise Edition">
    Chapter 32,
    <i>
     MySQL Enterprise Edition
    </i>
   </a>
   .
  </p>
  <p>
   If you are compiling MySQL 8.4 from source, configuring
    the build with
   <code class="literal">
    InnoDB
   </code>
   support is sufficient to
    produce binaries with partition support for
   <code class="literal">
    InnoDB
   </code>
   tables. For more information, see
   <a class="xref" href="source-installation.html" title="2.8 Installing MySQL from Source">
    Section 2.8, “Installing MySQL from Source”
   </a>
   .
  </p>
  <p>
   Nothing further needs to be done to enable partitioning support by
   <code class="literal">
    InnoDB
   </code>
   (for example, no special entries are
    required in the
   <code class="filename">
    my.cnf
   </code>
   file).
  </p>
  <p>
   It is not possible to disable partitioning support by the
   <code class="literal">
    InnoDB
   </code>
   storage engine.
  </p>
  <p>
   See
   <a class="xref" href="partitioning-overview.html" title="26.1 Overview of Partitioning in MySQL">
    Section 26.1, “Overview of Partitioning in MySQL”
   </a>
   , for an introduction to
    partitioning and partitioning concepts.
  </p>
  <p>
   Several types of partitioning are supported, as well as
    subpartitioning; see
   <a class="xref" href="partitioning-types.html" title="26.2 Partitioning Types">
    Section 26.2, “Partitioning Types”
   </a>
   , and
   <a class="xref" href="partitioning-subpartitions.html" title="26.2.6 Subpartitioning">
    Section 26.2.6, “Subpartitioning”
   </a>
   .
  </p>
  <p>
   <a class="xref" href="partitioning-management.html" title="26.3 Partition Management">
    Section 26.3, “Partition Management”
   </a>
   , covers methods of adding,
    removing, and altering partitions in existing partitioned tables.
  </p>
  <p>
   <a class="xref" href="partitioning-maintenance.html" title="26.3.4 Maintenance of Partitions">
    Section 26.3.4, “Maintenance of Partitions”
   </a>
   , discusses table
    maintenance commands for use with partitioned tables.
  </p>
  <p>
   The
   <a class="link" href="information-schema-partitions-table.html" title="28.3.21 The INFORMATION_SCHEMA PARTITIONS Table">
    <code class="literal">
     PARTITIONS
    </code>
   </a>
   table in the
   <code class="literal">
    INFORMATION_SCHEMA
   </code>
   database provides information
    about partitions and partitioned tables. See
   <a class="xref" href="information-schema-partitions-table.html" title="28.3.21 The INFORMATION_SCHEMA PARTITIONS Table">
    Section 28.3.21, “The INFORMATION_SCHEMA PARTITIONS Table”
   </a>
   , for more
    information; for some examples of queries against this table, see
   <a class="xref" href="partitioning-handling-nulls.html" title="26.2.7 How MySQL Partitioning Handles NULL">
    Section 26.2.7, “How MySQL Partitioning Handles NULL”
   </a>
   .
  </p>
  <p>
   For known issues with partitioning in MySQL 8.4, see
   <a class="xref" href="partitioning-limitations.html" title="26.6 Restrictions and Limitations on Partitioning">
    Section 26.6, “Restrictions and Limitations on Partitioning”
   </a>
   .
  </p>
  <p>
   You may also find the following resources to be useful when working
    with partitioned tables.
  </p>
  <a class="indexterm" name="idm46045084982032">
  </a>
  <p>
   <b>
    Additional Resources.
   </b>
   Other sources of information about user-defined partitioning in
      MySQL include the following:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      <a class="ulink" href="https://forums.mysql.com/list.php?106" target="_blank">
       MySQL Partitioning
        Forum
      </a>
     </p>
     <p>
      This is the official discussion forum for those interested in or
        experimenting with MySQL Partitioning technology. It features
        announcements and updates from MySQL developers and others. It
        is monitored by members of the Partitioning Development and
        Documentation Teams.
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="ulink" href="http://www.planetmysql.org/" target="_blank">
       PlanetMySQL
      </a>
     </p>
     <p>
      A MySQL news site featuring MySQL-related blogs, which should be
        of interest to anyone using my MySQL. We encourage you to check
        here for links to blogs kept by those working with MySQL
        Partitioning, or to have your own blog added to those covered.
     </p>
    </li>
   </ul>
  </div>
 </div>
 <br/>
</div>
