
Mysql 的分区技术与水平分表有点类似, 但是它是在逻辑层进行的水平分表, 对于应用而言它还是一张表, 换句话说: 分区不是实际真正的对一张表进行拆分,分区之后表还是一个表,它是把存储文件进行拆分。
在 Mysql 5.1(后) 有了几种分区类型:
RANGE分区: 基于属于一个给定连续区间的列值, 把多行分配给分区
LIST分区: 类似于按 RANGE 分区, 区别在于 LIST 分区是基于列值匹配一个离散值集合中的某个值来进行选择
HASH分区: 基于用户定义的表达式的返回值来进行选择分区, 该表达式使用将要插入到表中的这些行的列值进行计算, 这个函数可以包含 Mysql 中有效的、产生非负整数值的任何表达式
KEY分区: 累世于按 HASH 分区, 区别在于 KEY 分区只支持计算一列或多列, 且 Mysql 服务器提供其自身的哈希函数
Hash Global分区索引介绍
HASH-Partitioned Global索引是Oracle 10g开始提供的新特性。而在以前的版本中
,Oracle只支持Range-Partitioned Global索引。HASH-Partitioned Global索引的好处如下:
比Range-Partitioned Global索引易于实施。HASH-Partitioned Global索引是根据
索引字段值,通过Oracle内部的HASH算法自动均匀散列到定义的分区中。而
Range-Partitioned Global索引需要根据索引字段值的范围进行分区,因此实施和
维护的难度都大。
HASH-Partitioned Global索引适合于在并发量、吞吐量很大的交易系统(OLTP)
中,对某些字段的访问冲突。尤其是sequence字段值。
HASH-Partitioned Global索引适合于大批量的数据查询。HASH-Partitioned Global索引不仅可以提供分区之间的并行查询,
而且在分区内也可进行并行查询的处理。
建立分区索引必须指定表空间,并且指定的表空间要与数据表空间分开,
这样便于管理,同时尽可能分开索引和数据的IO访问,提高效率
from askmaclean欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)