ホームページ  >  記事  >  データベース  >  mysql でパーティションを作成する 2 つの方法の紹介 (コード例)

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

不言
不言転載
2019-02-15 14:43:003669ブラウズ

この記事では、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 までご連絡ください。