PolarDB分区表完全兼容原生MySQL的语法和功能。同时,PolarDB分区表相对于原生MySQL进行了性能增强,支持丰富的分区类型及组合,使您可以更加便捷、简单和高效的使用分区表。
分区表是将一个大的逻辑表,按照分区规则分割成多个小的物理表, 大的逻辑表为分区表,小的物理表为分区,每一个分区在存储引擎上独立组织管理数据和索引。分区规则主要包括RANGE、LIST、HASH三种,您需要指定分区键, 根据分区键字段的值按照这三种规则把数据划分到不同的分区。PolarDB还支持创建混合分区,可以将每个分区放在不同的存储引擎上。Orders表做二级分区的示意图如下:
优势
- 丰富的分区类型及组合。
- 支持主键和分区键解耦(UNIQUE CHECK IGNORE),性能空间提升的同时,使得普通表转分区表更加便捷。
- 支持RANGE、LIST、HASH和LIST DEFAULT HASH分区及其分区的任意组合,使得分区表具有更加灵活的数据分治能力。
- 支持INTEVAL RANGE分区,让分区运维自动化更加简单高效。
- 支持INNODB和OSS混合分区,助力您的业务降本增效。
- 支持在不同分区下创建不同的索引(Partial index)及全局二级索引(Global Secondary Index),更好的满足基于分区的HTAP交易和查询负载对表索引的不同要求。
- 提升性能。
- 分区剪枝(Partition Pruning):在查询数据时,优化器会根据查询条件和分区元数据自动过滤不符合条件的分区,减少数据扫描,PolarDB还支持分区动态剪枝(Partition Dynamic Pruning)功能,帮助您提升查询效率。
- 分区连接(PartitionWise Joins):在连接分区时,根据分区条件将分区表打散成分区与分区之间的连接,过滤不符合条件的分区之间的连接,把连接的数据控制在最小范围内,提高查询效率。
- 统计信息管理:相比普通表,以分区粒度进行的信息统计和管理,更加精确和灵活,从而支持选择更优的查询计划。
- 支持并行查询加速,为基于分区的大表方案提供成倍性能提升。
- 加强数据管理能力。
- 索引创建、删除和重建:以分区为单位进行索引的创建、删除和重建。
- 备份和恢复: 以分区粒度进行数据备份和恢复。
- 降低成本。
分区可以根据数据重要性、数据存储性能、数据存储可靠性和数据存储形式多种维度进行存储。
功能优化和性能增强
相对于原生MySQL,PolarDB如下功能得到了优化,性能得到了增强:| 类型 | 优化项 | 相关文档 | |
|---|---|---|---|
| 扩展分区类型 | 支持全类型二级分区 | 支持HASH/KEY分区下面做二级分区 | 选择二级分区 |
| 二级分区支持RANG/LIST类型 | |||
| 支持二级分区的Partition Pruning | |||
| 支持二级分区粒度上的部分DDL操作 | |||
| List Default [Hash]分区类型 | 支持List Default [Hash]分区 | LIST DEFAULT HASH | |
| 支持List Default [Hash]分区下面做二级分区 | |||
| 二级分区支持List Default分区 | |||
| 支持通过reorganize从default [Hash]分区分离出List分区 | |||
| 支持通过reorganize List分区合并到default [Hash]分区 | |||
| 支持通过reorganize改变default hash分区的个数 | |||
| 支持List default Hash分区的Partition Pruning | |||
| 支持List Default Hash分区、ONLINE ADD List分区 | |||
| Interval Range分区类型 | 支持Interval Range分区 | INTERVAL RANGE简介 | |
| Interval Range支持Hash二级分区 | INTERVAL RANGE转换分区表 | ||
| 主键/唯一键与分区键解绑(UNIQUE CHECK IGNORE) | 创建分区表支持UNIQUE CHECK IGNORE option | UNIQUE CHECK IGNORE | |
| 普通表转分区表支持UNIQUE CHECK IGNORE option | 普通表快速转RANGE分区表 | ||
| 支持分区索引 | 部分索引(Partial Index) | Partial Index支持一级分区 | 部分索引 |
| Partial Index支持二级分区 | |||
| 支持一级/二级分区粒度的索引DDL操作(ADD/DROP/REBUILD Index) | |||
| 支持Partial Index的Index Pruning | |||
| 统计信息支持Partial Index | |||
| Hybrid Partition表支持 Partial Index | |||
| List Default Hash分区支持Partial Index | |||
| 全局二级索引(Global Secondary Index) | 支持CREATE/DROP全局二级索引 | 全局二级索引(GSI) | |
| 支持DML和大部分表级的DDL | |||
| 支持全局二级索引的Online DDL | |||
| 支持unique的全局二级索引 | |||
| Query优化 | 查询优化器 | 支持Partial Partition Wise join | 无 |
| 支持Partition动态剪枝 | |||
| 支持Partition Index Pruning | |||
| 支持分区粒度的统计信息(Hyperloglog) | |||
| 分区表支持分区间的并行扫描 | |||
| 支持全局索引优化器选择和并行扫描 | |||
| 支持分区与MPP相结合 | |||
| 分区粒度MDL锁 | ADD/DROP PARTITION支持分区粒度的MDL锁 | 在线分区维护 | |
| EXCHANGE PARTITION支持分区粒度的MDL锁 | |||
| REBULD/REORGANIZE PARTITION支持分区粒度的MDL锁 | |||
| 二级分区支持子分区粒度的MDL锁 | |||
| DDL功能 | 普通表与分区表的ONLINE DDL | 普通表转分区表ONLINE DDL用于历史数据转Range分区表 | 普通表快速转RANGE分区表 |
| Hybrid Partition | 支持不同类型的存储引擎 | 创建混合分区 | |
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




