php教程 PHP源码 Mysql分区|mysql分区表|mysql partition|by range

Mysql分区|mysql分区表|mysql partition|by range

May 26, 2016 am 08:20 AM

一、分区概念 

分区允许根据指定的规则,跨文件系统分配单个表的多个部分。表的不同部分在不同的位置被存储为单独的表。MySQL从5.1.3开始支持Partition。

分区和手动分表对比

手动分表 -----------------  分区
多张数据表------------一张数据表
重复数据的风险  ------------没有数据重复的风险
写入多张表------------写入一张表
没有统一的约束限制------------强制的约束限制
 

MySQL支持RANGE,LIST,HASH,KEY分区类型,其中以RANGE最为常用:

Range(范围)– 这种模式允许将数据划分不同范围。例如可以将一个表通过年份划分成若干个分区。
List(预定义列表)– 这种模式允许系统通过预定义的列表的值来对数据进行分割。
Hash(哈希)– 这中模式允许通过对表的一个或多个列的Hash Key进行计算,最后通过这个Hash码不同数值对应的数据区域进行分区。例如可以建立一个对表主键进行分区的表。
Key(键值)- 上面Hash模式的一种延伸,这里的Hash Key是MySQL系统产生的。
Composite(复合模式) – 以上模式的组合使用。比如,在初始化已经进行了Range范围分区的表上,我们可以对其中一个分区再进行hash哈希分区。 
 

二、分区能做什么

逻辑数据分割
提高单一的写和读应用速度
提高分区范围读查询的速度
分割数据能够有多个不同的物理文件路径
高效的保存历史数据
一个表上的约束检查
不同的主从服务器分区策略,例如master按Hash分区,slave按range分区

Tips: 如果需要子分区的话,一般只针对range和list进行子分区,而子分区采用的模式通常为hash或者key

1.shell/批处理代码

#这里修改成分区表
ALTER TABLE sign PARTITION by RANGE(id)(
PARTITION sign_p0 VALUES less than (10000000),
PARTITION sign_p1 VALUES less than (20000000),
PARTITION sign_p2 VALUES less than (30000000),
PARTITION sign_p3 VALUES less than (40000000),
PARTITION sign_p4 VALUES less than (50000000),
PARTITION sign_p5 VALUES less than (60000000),
PARTITION sign_p6 VALUES less than (70000000),
PARTITION sign_p7 VALUES less than (80000000),
PARTITION sign_p8 VALUES less than (90000000),
PARTITION sign_p9 VALUES less than MAXVALUE
);
#如果创建时分区表
CREATE TABLE sign(表结构)engine=MyISAM PARTITION BY RANGE(id)(
PARTITION sign_p0 VALUES less than (10000000),
PARTITION sign_p1 VALUES less than (20000000),
PARTITION sign_p2 VALUES less than (30000000),
PARTITION sign_p3 VALUES less than (40000000),
PARTITION sign_p4 VALUES less than (50000000),
PARTITION sign_p5 VALUES less than (60000000),
PARTITION sign_p6 VALUES less than (70000000),
PARTITION sign_p7 VALUES less than (80000000),
PARTITION sign_p8 VALUES less than (90000000),
PARTITION sign_p9 VALUES less than MAXVALUE
);
로그인 후 복사

2.截图

24180809_VGRQ.png

3.批处理代码

#上图所示
#通常的PC机,一亿条记录,修改时耗时接近12分钟;
#分区前,大概2.5G多数据,分区后有接近3.9G
로그인 후 복사
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)