CREATE TABLESPACE
CREATE TABLESPACE — создать табличное пространство
Синтаксис
CREATE TABLESPACEтабл_пространство
[ OWNER {новый_владелец
| CURRENT_USER | SESSION_USER } ] LOCATION 'каталог
' [ WITH (параметр_табличного_пространства
=значение
[, ... ] ) ]
Описание
CREATE TABLESPACE
регистрирует новое табличное пространство на уровне кластера баз данных. Имя табличного пространства должно отличаться от имён уже существующих табличных пространств в кластере.
Табличные пространства позволяют суперпользователям определять альтернативные расположения в файловой системе, где могут находиться файлы, содержащие объекты базы данных (например, таблицы или индексы).
Пользователь, имеющий соответствующие права, может передать параметр табл_пространство
команде CREATE DATABASE
, CREATE TABLE
, CREATE INDEX
или ADD CONSTRAINT
, чтобы файлы данных для этих объектов хранились в указанном табличном пространстве.
Предупреждение
Табличное пространство нельзя использовать отдельно от кластера, в котором оно было определено; см. Раздел 22.6.
Параметры
табл_пространство
Имя создаваемого табличного пространства. Это имя не может начинаться с
pg_
, так как такие имена зарезервированы для системных табличных пространств.имя_пользователя
Имя пользователя, который будет владельцем табличного пространства. Если опущено, владельцем по умолчанию станет пользователь, выполняющий команду. Создавать табличные пространства могут только суперпользователи, но их владельцами могут быть назначены и обычные пользователи.
каталог
Каталог, который будет использован для этого табличного пространства. Этот каталог должен быть пустым и должен принадлежать системному пользователю Postgres Pro. Задаваться его расположение должно абсолютным путём.
параметр_табличного_пространства
Устанавливаемый или сбрасываемый параметр табличного пространства. В настоящее время поддерживаются только параметры
seq_page_cost
,random_page_cost
,effective_io_concurrency
иcompression
. При установке параметров стоимости для заданного табличного пространства будет переопределена обычная оценка стоимости чтения страниц из таблиц в этом пространстве, настраиваемая одноимённым параметром конфигурации (см. seq_page_cost, random_page_cost, effective_io_concurrency). Это может быть полезно, если одно из табличных пространств размещено на диске, который быстрее или медленнее остальной дисковой системы. Сжатие рассматривается в Главе 33.
Замечания
Табличные пространства поддерживаются только на платформах, поддерживающих символические ссылки.
CREATE TABLESPACE
не может быть выполнена внутри блока транзакции.
Примеры
Создание табличного пространства dbspace
в /data/dbs
:
CREATE TABLESPACE dbspace LOCATION '/data/dbs';
Создание табличного пространства indexspace
в /data/indexes
и назначение его владельцем genevieve
:
CREATE TABLESPACE indexspace OWNER genevieve LOCATION '/data/indexes';
Совместимость
CREATE TABLESPACE
является расширением Postgres Pro.