注册 登录
MySQL社区 返回首页

lana268.net的个人空间 http://www.mysqlpub.com/?15547 [收藏] [复制] [RSS]

日志

学习MySQL分区(1)-什么是分区

已有 3763 次阅读2014-6-3 10:58 |个人分类:MySQL学习|系统分类:原创| mysql, 分区

学习MySQL分区(1)-什么是分区

[lana268.net] 2014-5-27

关于分区

MySQL5.1版本开始支持分区,基本上可以分成几类:

  • RANGE分区
  • HASH分区
  • LIST分区
  • COLUMNS分区
  • KEY分区
  • 复合分区

MySQL支持使用大部分存储引擎创建分区表,但不支持使用MERGECSV存储引擎来创建分区表。在MySQL 5.6版本中,同一个分区表的所有分区必须使用同一个存储引擎。但是,可以在同意个MySQL服务器中,甚至同一个数据库中,对不同的分区表使用不同的存储引擎。

对于任何类型的MySQL分区,分区键都必须建在主键/唯一键字段上,除非分区表上没有主键/唯一键。

  对于索引,MySQL分区表上的创建索引一定是本地LOCAL索引,即不能只对表数据分区而不对索引分区,反过来也不能只对索引分区而不对表分区。

  MySQL创建分区的好处包括可存储更多数据,优化查询,便于删除旧数据,以及增加吞吐量等方面,这里不多论述,而将重点放在分区类型的选择和实现上。

一、 什么时候使用Range分区

Range 分区是应用范围比较广的分区方式,它是以取值范围为条件来将数据划分成分区,将数据存放到列值所在的range分区中,取值区间要连续并且不能互相重叠。比如按照时间划分,20141季度的数据放到a分区,2季度的数据放到b分区,因此在创建的时候呢,需要你指定基于的列,以及分区的范围值,如果某些记录暂无法预测范围,可以创建maxvalue分区,所有不在指定范围内的记录都会被存储到maxvalue所在分区中。

Range分区功能在以下两种情况特别适用。

  • 经常运行包含分区键地查询,MySQL可以只扫描某一个或者某些在Range范围内的分区。
  • 当需要删除过期数据库时,只需要简单的删除某些分区,这笔运行一个DELETE语句效率高。

二、 什么时候使用Hash分区

  Hash分区主要用来分散热点读,确保数据在各个分区中尽量平均分布。通常呢,对于那些无法有效划分范围的表,可以使用hash分区,这样对于提高性能还是会有一定的帮助。hash分区表的列所在分区是依据分区列的hash值自动分配,因此你并不需要控制哪条记录放到哪个分区中。

三、 什么时候使用List分区

  List 分区与range分区有很多类似之处,该分区与range分区类似的是也需要你指定列的值,但这又不同与range分区的范围式列值---其分区值必须明确指定。

你在分区时必须确定分区列可能存在的值,一旦插入的列值不在分区范围内,则插入/更新就会失败, list分区并不存在类似range分区中的maxvalue分区。

MySQL 5.5版本开始支持非整数分区,之前的版本只支持整数分区。

四、 什么时候使用Columns分区

Columns分区是在MySQL 5.5中引入的分区类型,解决了之前版本的RANGE分区和LIST分区只支持整数分区的问题。Columns分区分为RANGE Columns分区和LIST Columns分区,这两种分区都支持整数、日期时间、字符串三大数据类型。此外,Columns分区的另外一大亮点就是支持多列分区。

五、 什么时候使用Key分区

Key进行分区类似于HASH分区,区别在于HASH分区允许用户使用自定义的表达式,而Key分区不允许使用用户自定义的表达式,需要使用MySQL服务器提供的HASH函数;同时HASH分区只支持整数分区,而Key分区支持使用BLOBText雷系外其他雷系的列作为分区键。

四、 什么时候使用复合分区

  如果某表按照某列分区之后,仍然较大,或者是一些其它的需求,还可以对分区再次分割,用创建子分区的方式将分区再分区,即复合分区。

MySQL 5.1开始支持对RANGE分区或者LIST分区再进行子分区,子分区可以是Hash分区或KEY分区。

 

 

 

 

欢迎转载分享,综合导购必到www.lana268.net

手机话费充值,请到wood充值中心,http://t.cn/8sDLJig  

 

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周生; 联系电话:13911732319

GMT+8, 2024-5-3 13:18 , Processed in 0.043442 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部