Tablespaces for RDS for PostgreSQL (original) (raw)
RDS for PostgreSQL supports tablespaces for compatibility. Because all storage is on a single logical volume, you can't use tablespaces for I/O splitting or isolation. Our benchmarks and experience indicate that a single logical volume is the best setup for most use cases.
To create and use tablespaces with your RDS for PostgreSQL DB instance requires therds_superuser
role. Your RDS for PostgreSQL DB instance's main user account (default name, postgres
) is a member of this role. For more information, see Understanding PostgreSQL roles and permissions.
If you specify a file name when you create a tablespace, the path prefix is/rdsdbdata/db/base/tablespace
. The following example places tablespace files in /rdsdbdata/db/base/tablespace/data
. This example assumes that a dbadmin
user (role) exists and that it's been granted the rds_superuser
role needed to work with tablespaces.
postgres=> CREATE TABLESPACE act_data
OWNER dbadmin
LOCATION '/data';
CREATE TABLESPACE
To learn more about PostgreSQL tablespaces, see Tablespaces in the PostgreSQL documentation.