>  기사  >  데이터 베이스  >  MySQL 5.1分区技术初探(四)

MySQL 5.1分区技术初探(四)

WBOY
WBOY원래의
2016-06-07 16:34:27992검색

2.5 KEY分区 与HASH分区类似,但它的key可以不是整数类型,如字符串等类型的字段。MySQL 簇(Cluster)使用函数MD5()来实现KEY分区;对于使用其他存储引擎的表,服务器使用其自己内部的哈希函数,这些函数是基于与 PASSWORD()一样的运算法则。 2.6 不同分区

2.5 KEY分区
与HASH分区类似,但它的key可以不是整数类型,如字符串等类型的字段。MySQL 簇(Cluster)使用函数MD5()来实现KEY分区;对于使用其他存储引擎的表,服务器使用其自己内部的哈希函数,这些函数是基于与 PASSWORD()一样的运算法则。
2.6 不同分区技术的对比
如上分别列出了不同的分区技术,接下来进行对比,如下表所示:
分区类型 优点 缺点 共性
Range 适合与日期类型,支持复合分区 有限的分区 一般只针对某一列
List 适合与有固定取值的列,支持复合分区 有限的分区,插入记录在这一列的值不值List中,则数据丢失 一般只针对某一列
Hash 线性Hash使得增加、删除和合并分区更快捷 线性Hash的数据分布不均匀,而一般Hash的数据分布较均匀 一般只针对某一列
Key 列可以为字符型等其它非Int类型 效率较之前的低,因为函数为复杂的函数(如. MD5或SHA函数) 一般只针对某一列
3. 案例分析
这个案例是针对有个员工、部门、部门经理、头衔和销售记录的模拟数据,其ER图如下所示,数据量大概有4百万左右。数据下载URL: https://launchpad.net/test-db


通过如上可知,对于同样的数据按照分区和不分区的技术分别存储,从而便于如下的查询性能分析和对比。  对于salaries表,它采用RANGE分区,定义如下:

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.