欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySQL 5.1分区技术初探(四)

程序员文章站 2022-05-16 16:45:28
...

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
MySQL 5.1分区技术初探(四)
MySQL 5.1分区技术初探(四)
通过如上可知,对于同样的数据按照分区和不分区的技术分别存储,从而便于如下的查询性能分析和对比。  对于salaries表,它采用RANGE分区,定义如下:
MySQL 5.1分区技术初探(四)