使用限制

为保障云上数据库服务的整体稳定性与性能,PolarDB PostgreSQL版(兼容Oracle)在资源使用和功能操作上设定了特定限制。本文档旨在帮助您了解并遵循这些限制,以便在应用设计和数据库运维中进行合理规划,从而避免因超出限制而引发的运行异常。

本产品的限制主要包括PolarDB在云上环境中特有的限制,以及其继承自PostgreSQL内核的通用限制。

PolarDB限制

以下限制为PolarDB PostgreSQL版(兼容Oracle)版为保障多租户环境下的稳定性、安全性与资源隔离而设定的特有规则。

文件数量上限

PolarDB PostgreSQL版(兼容Oracle)对单个集群可创建的文件总数设有上限,此上限与集群的节点规格直接相关。当文件数量达到上限时,您将无法创建新的数据表或索引,并会收到could not create file错误提示。

  • 文件构成:文件总数包括用户表文件、数据库系统表文件、索引文件以及日志文件等。通常,一个普通的数据表(非分区表)会占用3个文件(数据文件、FSM文件、VM文件)。若该表包含索引,则每个索引会额外占用1个文件。

  • 解决方案:若达到文件数量上限,您可以通过删除不再使用的表或索引来释放资源,或通过来提升上限。

  • 各规格上限详情

    节点规格

    文件个数上限

    polar.o.x4.medium

    1048576

    polar.o.x4.large

    2097152

    polar.o.x4.xlarge

    2097152

    polar.o.x8.xlarge

    4194304

    polar.o.x8.2xlarge

    8388608

    polar.o.x8.4xlarge

    12582912

    polar.o.x8.12xlarge

    20971520

功能与权限限制

操作项

使用约束

说明

数据库权限

不提供superuser权限

作为替代,系统提供了polar_superuser角色,即高权限账号。该角色是superuser权限的子集,能够满足绝大多数日常管理需求。

PostgreSQL限制

作为基于PostgreSQL的云数据库,PolarDB同样遵循PostgreSQL内核关于数据库对象的内在限制。下表整合了PostgreSQL 1417版本中稳定存在的通用核心限制,在进行数据库设计时需要重点关注。

限制对象

限制值

说明

数据库大小

500 TB

默认最高500 TB存储空间,实际容量受限制与您的集群规格。

单表最大尺寸

32 TB

此为基于默认8KB数据块(BLCKSZ)大小的有效上限。

单表最大列数

1,600

理论上限为1600,但实际可用列数取决于所有列的数据类型总和。由于一行数据(不含TOAST值)不能超过一个数据页(约8KB),因此使用bigint等宽数据类型会显著减少列数上限。建议将列数控制在250以内以保证最佳性能。

单字段最大尺寸

1 GB

适用于textjsonbbytea等可变长度类型。其存储依赖TOAST机制,将超大值存储在行外。

标识符长度

63 字节

数据库对象(如表、列名)的名称上限。超过部分将被静默截断,可能导致非预期行为。

单表最大索引数

无限制

理论上没有上限,实际可创建的索引数量受限于存储空间、文件数量上限和系统资源。

索引列数

32

单个索引中可以包含的列数上限。

分区键列数

32

创建分区表时,分区键可以包含的列数上限。

函数参数个数

100

自定义函数的参数数量上限。

查询参数个数

65,535

在单个查询中可以使用的参数标记(如 $1$2)的数量上限。