>  기사  >  데이터 베이스  >  mysql에서 파티션을 생성하는 두 가지 방법 소개(코드 예제)

mysql에서 파티션을 생성하는 두 가지 방법 소개(코드 예제)

不言
不言앞으로
2019-02-15 14:43:003681검색

이 글은 MySQL에서 파티션을 생성하는 두 가지 방법(코드 예제)을 소개합니다. 이는 특정 참조 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

#list 파티션--키 값은 사용자 정의 목록을 통해 쓸 파티션을 결정합니다.​

장점: 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)
);

#hash 파티션--해시 알고리즘을 통해 키 값을 계산한 후 해당 파티션에 자동으로 기록됩니다.

장점: 해당 데이터를 직접 작성할 필요가 없습니다(어떤 파티션이 작성되거나 쿼리되는지)

단점: 정수 정수만 지원

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에서 파티션을 생성하는 두 가지 방법 소개(코드 예제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제