首页 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 Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24