mysql でパーティションを作成する 2 つの方法の紹介 (コード例)

不言
リリース: 2019-02-15 14:43:00
転載
3622 人が閲覧しました

この記事では、MySQL でパーティションを作成する 2 つの方法 (コード例) を紹介します。必要な方は参考にしていただければ幸いです。

#リスト パーティション - キーの値は、どのパーティションに書き込まれるかカスタム リストによって決定されます。

利点: int、time、varchar およびその他の値をサポートします。

欠点: 対応するデータのスレーブを自分で記述する必要があります (どのパーティションが書き込まれるかクエリされるか)。後でパーティション条件を変更した場合は、再度設定する必要があります。
#

CREATE TABLE t_test (
    unid INT auto_increment , 
    uuid VARCHAR(36),
    cdate datetime,
    type int,
        text varchar(30),
        PRIMARY KEY(unid,type)
)
PARTITION BY LIST COLUMNS(type) (        #这里以type字段来分区,list分区中,这个字段可以为int整形或者某个值
    PARTITION pRegion_1  VALUES IN (1),     #这里的意思是,当type=1时,数据会写入到pRegion_1分区中
    PARTITION pRegion_2  VALUES IN (2),     #同上
    PARTITION pRegion_3  VALUES IN (3),
    PARTITION pRegion_4  VALUES IN (4)
);
ログイン後にコピー

#ハッシュ パーティション -- ハッシュ アルゴリズムを通じてキー値が計算された後、対応するパーティションに自動的に書き込まれます。

利点: 対応するデータ スレーブを自分で記述する必要はありません (どのパーティションに書き込むかクエリするか)

欠点: int 整数型のみがサポートされます


CREATE TABLE t_test (
    unid INT auto_increment ,
    uuid VARCHAR(36),
    cdate datetime,
    type int,
    text varchar(30),
    PRIMARY KEY(unid,type)       #复合主键,因为后面要用type字段来分区
)
PARTITION BY HASH ( type )   #这里以type字段来分区,type必须是主键或者是复合主键包含的字段,hash分区的方式必须该字段为int
PARTITIONS 10;              #这里设定的是分区数为10,数据会通过type字段经过hash算法后,自动归属到10个分区中的某个分区中
ログイン後にコピー

以上がmysql でパーティションを作成する 2 つの方法の紹介 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!