暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

OceanBase系统架构分区概述

2023-12-13
269

在 OceanBase 数据库中,分区是指根据一定的规则,把一个表分解成多个更小的、更容易管理的部分。每个分区都是一个独立的对象,具有自己的名称和可选的存储特性。本章节主要介绍分区的相关概念以及使用分区的好处。

对于访问数据库的应用而言,在逻辑上的访问只有一个表或一个索引,但是实际上这个表可能由数十个物理分区对象组成,每个分区都是一个独立的对象,可以独自处理访问,也可以作为表的一部分处理访问。分区对应用来说是完全透明的,不影响应用的业务逻辑。

从应用程序的角度来看,只存在一个 Schema 对象。访问分区表不需要修改 SQL 语句。分区对于许多不同类型的数据库应用程序非常有用,尤其是那些管理大量数据的应用程序。

使用分区的好处如下:

  • 提高了可用性

    分区不可用并不意味着对象不可用。查询优化器自动从查询计划中删除未引用的分区。因此,当分区不可用时,查询不受影响。

  • 更轻松地管理对象

    分区对象具有可以集体或单独管理的片段。DDL 语句可以操作分区而不是整个表或索引。因此,可以对重建索引或表等资源密集型任务进行分解。例如,可以一次只移动一个分区。如果出现问题,只需要重做分区移动,而不是表移动。此外,对分区进行 TRUNCATE 操作可以避免大量数据被 DELETE

  • 减少 OLTP 系统中共享资源的争用

    在 TP 场景中,分区可以减少共享资源的争用。例如,DML 分布在许多分区而不是一个表上。

  • 增强数据仓库中的查询性能

    在 AP 场景中,分区可以加快即时查询的处理速度。分区键有天然的过滤功能。例如,查询一个季度的销售数据,当销售数据按照销售时间进行分区时,仅仅需要查询一个分区或者几个分区,而不是整个表。

  • 提供更好的负载均衡效果

    OceanBase 数据库的存储单位和负载均衡单位都是分区。不同的分区可以存储在不同的节点。因此,一个分区表可以将不同的分区分布在不同的节点,这样可以将一个表的数据比较均匀的分布在整个集群。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论