[MySQL5.7.6]InnoDB native partition table

官方博客介绍:http://mysqlserverteam.com/innodb-native-partitioning-early-access/

在之前的版本中,分区表的分区管理模式是放在server层,对于底层引擎层而言并不存在分区表的概念,每个分区和普通的表,对InnoDB引擎而言都是等同等低位的。由于需要为每个分区建立handler,这种方式可能导致过多的资源浪费,例如bug#62536 和 bug#37252。

大部分修改对用户而言是透明的,当然,由于分区下推到引擎层,分区信息记录到数据词典表,因此从5.7.6版本开始可以和.par文件say bye bye了。.
简单来说,从如下架构(copy from worklog):
                   +-----------------+
                   |  main handler   |
                   | (ha_partition)  |
                   +-----------------+
+---------------+ +---------------+       +---------------+ 
| part1 handler | | part2 handler | ....  | partN handler |
|  ha_innobase  | |  ha_innobase  |       |  ha_innobase  |
+---------------+ +---------------+       +---------------+ 
转换成:
+-----------------+
|     handler     |
|  (ha_innopart)  |
+-----------------+
当然在存储层依然是划分成多个ibd文件,这样我们可以很方便的增加/删除/交换分区而无需重建整张表。
为了在innodb层管理分区,定义了新的接口ha_innopart,它是ha_innobase的子类(新文件handler/ha_innopart.cc),因此部分接口函数需要在这里被重新定义,例如DDL操作
相关类的关系如下:
partition
具体的修改参考:
git show 7363f343917f5213b840184594844511cc589afb
本文不展开描述具体的实现,单纯记录下相关信息,留待以后有时间再看。

原创文章,转载请注明: 转载自Simple Life

本文链接地址: [MySQL5.7.6]InnoDB native partition table

Post Footer automatically generated by wp-posturl plugin for wordpress.


Comments

Leave a Reply

Your email address will not be published. Name and email are required


Current month ye@r day *