すべてのプロダクト
Search
ドキュメントセンター

PolarDB:DD

最終更新日:Mar 29, 2026

DD は、日付(月の何日か)に基づいてデータをテーブルシャードに分割します。各テーブルシャードには特定の 1 日分のデータが格納され、シャード名はその日付(日数)を直接反映します。

仕組み

DD は、パーティションキーから「月の何日か」の値を抽出し、それをテーブルシャードの添字として使用します。たとえば、create_time = '2024-03-15 10:00:00' を持つ行は、15 日目のシャードにマップされます。結果として生成される物理テーブルはその日付(日数)に基づいて命名されるため、シャード名から直感的にどの日のデータが格納されているかを特定できます。

適用範囲/利用シーン

DD は、データのクエリやパージが日単位で行われるワークロードに適しています。各シャードが 1 日分のデータに対応するため、1 つのテーブルシャードを削除するだけで、その日の全データを一括して除去できます。

以下の Data Definition Language (DDL) 文では、ユーザー ID (id) に基づいてデータベースシャード(dbpartition)を構成し、さらに create_time の値に基づいて 1 日ごとに 1 つのテーブルシャード(tbpartition)を作成します。tbpartitions 31 を指定することで、最大 31 個のテーブルシャードが作成されます — これは 1 ヶ月における最大日数(31 日)に対応します。

CREATE TABLE test_dd_tb (
    id          INT,
    name        VARCHAR(30) DEFAULT NULL,
    create_time DATETIME    DEFAULT NULL,
    PRIMARY KEY (id)
) ENGINE = InnoDB DEFAULT CHARSET = utf8
  dbpartition BY HASH(id)
  tbpartition BY DD(create_time) tbpartitions 31;

制限事項

制約条件詳細
パーティションキーのデータ型DATE、DATETIME、TIMESTAMP のみ
パーティション対象範囲テーブルシャード(tbpartition)のみ。データベースシャード(dbpartition)には使用不可
1 つのデータベースシャードあたりの最大テーブルシャード数31 — 1 ヶ月の最大日数が 31 日であるため
PolarDB-X 1.0 の最低バージョン要件5.1.28-1320920