首页 > 数据库 > > 企业级增强特性-数据分区
数据分区是数据库产品普遍具备的功能。在GaussDB 200分布式系统中,数据分区是在一个节点内部对数据按照用户指定的策略对数据做进一步的水平分表,将表按照指定范围划分为多个数据互不重叠的部分(Partition)。
GaussDB 200支持范围分区(Range Partitioning)功能,即根据表的一列或者多列,将要插入表的记录分为若干个范围(这些范围在不同的分区里没有重叠),然后为每个范围创建一个分区,用来存储相应的数据。用户在CREATE TABLE时增加PARTITION参数,即表示针对此表应用数据分区功能。
例如,表1描述了一个xDR(详单)场景下,基于时间分片的方式分区后带来的收益。
场景描述 | 收益 |
|---|---|
当表中访问率较高的行位于一个单独分区或少数几个分区时。 | 大幅减少搜索空间,从而提升访问性能。 |
当需要查询或更新一个分区的大部分记录时。 | 仅需要连续扫描对应分区,而非扫描整个表,因此可大幅提升性能。 |
当需要大量加载或者删除的记录位于一个单独分区或少数几个分区时。 | 可直接读取或删除对应分区,从而提升处理性能;同时由于避免大量零散的删除操作,可减少清理碎片工作量。 |
数据分区带来的好处在于:
删除分区表与删除普通表的语法一致,都是通过DROP TABLE语法进行删除。
分区剪枝:分区剪枝(也称为分区消除)是CN在执行时过滤掉不需要扫描的分区,只对相关的分区进行扫描的技术。分区剪枝通常可以将查询性能提高若干数量级。
智能化分区联接:通过使用一种称为智能化分区联接的技术,分区还可以改善多表联接的性能。当将两个表联接在一起,并且至少其中一个表使用联接键进行分区时,可以应用智能化分区联接。智能化分区联接将一个大型联接分为多个较小的联接,这些较小的联接包含与联接的表“相同”的数据集。这里,“相同”定义为恰好包含联接的两端中相同的分区键值集,因此可以确保只有这些“相同”数据集的联接才会有效,而不必考虑其他数据集。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3167082/ ,如需转载,请注明出处,否则将追究法律责任。