搜索
首页php教程PHP源码Mysql分区|mysql分区表|mysql partition|by range

一、分区概念 

分区允许根据指定的规则,跨文件系统分配单个表的多个部分。表的不同部分在不同的位置被存储为单独的表。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 Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器