はじめに
パーティショニングとは、特定のルールに従って大きなテーブルを複数の小さな部分に分解することを指します。ここでのルールは、一般にパーティショニング ルールを使用してテーブルを水平に分割することです。ロジックは変更されていませんが、実際にはテーブルが複数の物理オブジェクトに分割されています。作成され、それぞれが独立したオブジェクトに分割されます。パーティションのない単一テーブルと比較して、パーティション テーブルには、同時統計クエリ、パーティション データの高速アーカイブと削除、分散ストレージ、クエリ パフォーマンスの向上など、多くの利点があります。
Mysql5.7 以降のクエリ ステートメントは、指定されたパーティションをサポートしています。例: "SELECT * FROM t PARTITION (p0,p1) WHERE c < 5
”指定分区同样适用DELETE, INSERT, REPLACE, UPDATE, and LOAD DATA, LOAD XML
.
データベースバージョン: mysql5.7.12
パーティションをサポートするかどうか
リーリー
クエリ パーティションのステータスがアクティブである場合、ソース コードからインストールされている場合は、コンパイル プロセス中に「-DWITH_PARTITION_STORAGE_ENGINE=1
」を追加します。
注: MERGE、CSV、または FEDERATED ストレージ エンジンはパーティション化をサポートしていません。同じテーブルのすべてのパーティションで同じストレージ エンジンを使用する必要があります。パーティション 1 に MYISAM を使用し、パーティション 2 に INNODB を使用することはできません。エンジン。
パーティションの概要
現在 mysql で使用できるパーティション タイプには主に次のものが含まれます:
RANGE パーティショニング: 指定された連続間隔範囲に基づいて、RANGE は主に整数パーティショニングに基づきます。非整数フィールドの場合は、式を使用して整数に変換する必要があります。
LIST パーティション化: は、リストされた列挙値のリストに基づいてパーティション化されます。
COLUMNS パーティション: 式による変換を行わずに、非整数フィールドを直接パーティション化できます。同時に、COLUMNS パーティションは、RANGE パーティションと LIST パーティションのアップグレードであり、複数のフィールドの組み合わせパーティションもサポートします。
HASH パーティショニング: 指定されたパーティション数に基づいてデータを異なるパーティションに分散します。 HASH パーティショニングでは整数のみをハッシュでき、非整数フィールドは式を通じてのみ整数に変換できます。
KEY パーティショニング: テキストと BLOB を除くすべてのデータ型のパーティショニングをサポートします。キー パーティショニングは、整数に変換せずにフィールドに基づいて直接パーティショニングできます。
手順
1. パーティション名の大文字と小文字の区別とキーワードの問題に注意してください。
2. パーティション タイプに関係なく、パーティション テーブルに主キーまたは一意キーが存在しないか、主キーまたは一意キーを持つテーブルの場合は、パーティション列以外のフィールドが主キーまたは一意キーに含まれます。主キーまたは一意キーをパーティションフィールドとして使用することはできません。
以前のバージョン 3.5.7 では、パーティションの実行計画が表示されます。5.7 以降のパーティションの説明。4. パーティション列が非 NULL であることの必須要件はありません。RANGE パーティションでは、パーティション列に NULL 値が挿入された場合、それは NULL として扱われます。 LIST パーティションでは、NULL 値が列挙リストに存在する必要があります。そうでない場合、挿入は失敗し、HASH/KEY パーティション内の NULL 値は 0 として扱われます。
5. MySQL は、「YEAR()、MONTH()、DAY()、TO_DAYS()、TO_SECONDS()、WEEKDAY()、DAYOFYEAR()」に基づく時間型フィールドの変換関数を提供します
6. パーティションの分割と結合後、変更されたパーティションの統計情報は無効になり、変更されていないパーティションの統計情報はそのまま残り、統計情報への新しく挿入された値の追加には影響しません。今回は、テーブルに対して分析操作を実行する必要があります
7. 非整数フィールドの RANGLIST パーティショニングには COLUMNS パーティショニングを使用することをお勧めします。
パーティションの削除と追加各パーティションの使用方法は、各パーティションの概要で詳しく紹介されていますが、いずれもパーティションの作成と、テーブル作成時の個々のパーティションの変更と削除について説明しています。また、既存のテーブルにパーティションを追加することもできます。テーブルパーティション全体を一度に削除します。
1. テーブルパーティションを削除しますリーリー
注: Remove を使用してパーティションを削除すると、パーティションの定義が削除されるだけであり、データは一緒に削除される Drop PARTITION とは異なります。
2. すでにレコードがあるテーブルのパーティションを作成します。例として、範囲パーティションを追加します。構文はテーブルの作成とパーティションの作成と同じです。リーリー
注: 既存のテーブルのパーティションを作成した後、データはパーティション定義に従って各パーティション ファイルに分散されます概要
上記は、MySQL パーティショニングの全体的な紹介と概要です。この記事が、mysql を使用する際に皆さんに役立つことを願っています。