To ensure the overall stability and performance of cloud database services, PolarDB for PostgreSQL sets specific limits on resource usage and feature operations. This topic helps you understand and comply with these limits so that you can plan properly in application design and database O&M, and avoid operational exceptions caused by exceeding the limits.
The limits of this product mainly include limits specific to PolarDB in the cloud environment, as well as general limits inherited from the PostgreSQL kernel.
PolarDB limits
The following limits are specific rules set by PolarDB for PostgreSQL to ensure stability, security, and resource isolation in a multi-tenant environment.
Maximum number of files
PolarDB for PostgreSQL sets an upper limit on the total number of files that can be created in a single cluster. This limit is directly related to the node specification of the cluster. When the number of files reaches the upper limit, you cannot create new data tables or indexes, and you will receive the could not create file error.
File composition: The total number of files includes user table files, database system table files, index files, log files, and so on. Usually, a regular data table (non-partitioned table) occupies 3 files (data file, FSM file, and VM file). If the table contains indexes, each index occupies one additional file.
Solution: If the maximum number of files is reached, you can release resources by deleting tables or indexes that are no longer used, or raise the upper limit by upgrading the configurations.
Details of the upper limits for each specification:
Node specification
Maximum number of files
polar.pg.x4.medium
1048576
polar.pg.x4.large
2097152
polar.pg.x4.xlarge
2097152
polar.pg.x8.xlarge
4194304
polar.pg.x8.2xlarge
8388608
polar.pg.x8.4xlarge
12582912
polar.pg.x8.12xlarge
20971520
Feature and permission limits
Operation item | Usage constraint | Description |
Database permissions | The | As an alternative, the system provides the |
PostgreSQL limits
As a PostgreSQL-based cloud database, PolarDB also follows the inherent limits of the PostgreSQL kernel on database objects. The following table summarizes the general core limits that are stable across PostgreSQL 14 to 18. You need to pay special attention to them during database design.
Limited object | Limit value | Description |
Database size | 500 TB/Unlimited | It depends on your PolarDB cluster architecture:
|
Maximum size of a single table | 32 TB | This is the effective upper limit based on the default 8 KB data block ( |
Maximum number of columns in a single table | 1,600 | The theoretical upper limit is 1600, but the actual number of available columns depends on the sum of the data types of all columns. Because a row of data (excluding TOAST values) cannot exceed one data page (about 8 KB), using wide data types such as |
Maximum size of a single field | 1 GB | Applies to variable-length types such as |
Identifier length | 63 bytes | The upper limit of the name of a database object (such as a table or column name). The excess part is silently truncated, which may cause unexpected behavior. |
Maximum number of indexes in a single table | Unlimited | There is no theoretical upper limit. The actual number of indexes that can be created is limited by the storage space, the maximum number of files, and system resources. |
Number of columns in an index | 32 | The upper limit of the number of columns that can be included in a single index. |
Number of columns in a partition key | 32 | The upper limit of the number of columns that the partition key can contain when you create a partitioned table. |
Number of function arguments | 100 | The upper limit of the number of arguments for a user-defined function. |
Number of query parameters | 65,535 | The upper limit of the number of parameter markers (such as |