ホームページ  >  記事  >  データベース  >  MySQL パーティショニングの概要_MySQL

MySQL パーティショニングの概要_MySQL

WBOY
WBOYオリジナル
2016-09-09 08:13:40930ブラウズ

はじめに

パーティショニングとは、特定のルールに従って大きなテーブルを複数の小さな部分に分解することを指します。ここでのルールは、一般にパーティショニング ルールを使用してテーブルを水平に分割することです。ロジックは変更されていませんが、実際にはテーブルが複数の物理オブジェクトに分割されています。作成され、それぞれが独立したオブジェクトに分割されます。パーティションのない単一テーブルと比較して、パーティション テーブルには、同時統計クエリ、パーティション データの高速アーカイブと削除、分散ストレージ、クエリ パフォーマンスの向上など、多くの利点があります。

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 を使用する際に皆さんに役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。