MySQL5.5 分区功能介绍和性能对比测试
分区历史:
Mysql5.1.3版本带着分区功能与大家见面了,在这之前如果想分表,可以先建立单独的表,再使用Merge引擎联合各表。Mysql分区功能走在老大ORACLE的后面,不过性能也不及oracle。
导读:
分区是一把双刃剑,在应用的时候要根据业务场景指定特定的规则。分区主要功能用于切分数据,用于保证在大数量的情况能快速的定位记录,前提是分区规则适合你的应用,其实就好比如果你要猜谜一样,对方给了一个提示,对于你找到谜底相对简单多了。
分区类型\应用场景:
四种类型:RANGE、LIST、COLUMN(range\list)、HASH、KEY
应用场景:存储历史记录,大数量的在线业务,数据分析系统,主要用于传统业务场景,另外请与sharding区分开来。
注意事项:
如果表中存在主键,则分区函数必须包含主键部分
各个分区对待分区列值为NULL的方式不同
官方非用户重新编译mysql版本最大分区数为1024
Drop partition会将该分区的所有数据删除
目前子分区都必须是同一引擎
分区表达式目前只支持一些函数,具体参考Partitioning Limitations Relating to Functions
分区不能太多,要适度。最好再你的生产服务器上测试,接下来会对折部分测试
完整的文章请访问:
http://www.mysqlops.com/2011/10/27/mysql5-5-partition-performance.html