CREATE TABLESPACE — создание нового табличного пространства
CREATE TABLESPACEtablespace_name[ OWNER {new_owner| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ] LOCATION 'directory' [ WITH (tablespace_option=значение[, ... ] ) ]
CREATE TABLESPACE регистрирует новое табличное пространство в масштабе всего кластера. Имя табличного пространства должно отличаться от имен всех существующих табличных пространств в кластере баз данных.
Табличное пространство позволяет суперпользователям определить альтернативное местоположение в файловой системе для размещения файлов данных, содержащих объекты базы данных (такие как таблицы и индексы).
Пользователь с соответствующими правами может передать это имя в
tablespace_name команды
CREATE DATABASE, CREATE TABLE,
CREATE INDEX или ADD CONSTRAINT чтобы файлы данных этих объектов хранились в указанном табличном пространстве.
Табличное пространство нельзя использовать независимо от кластера, в котором оно определено; см. Раздел 3.7.6.
tablespace_name
Имя создаваемого табличного пространства. Имя не может
начинаться с pg_, так как такие имена
зарезервированы для системных табличных пространств.
user_nameИмя пользователя, который станет владельцем табличного пространства. Если оно не указано, по умолчанию используется имя пользователя, выполняющего команду. Только суперпользователи могут создавать табличные пространства, но они могут назначать владельцами табличных пространств пользователей, не являющихся суперпользователями.
directory
Каталог, который будет использоваться для табличного пространства. Каталог
должен существовать (CREATE TABLESPACE не создаёт его),
должен быть пустым и принадлежать пользователю
Digital Q.DataBase системного пользователя. Каталог должен быть
указан в виде абсолютного пути.
tablespace_option
Параметр табличного пространства, который требуется установить или сбросить. В настоящее время единственными
доступными параметрами являются seq_page_cost,
random_page_cost, effective_io_concurrency
и maintenance_io_concurrency.
Установка этих значений для конкретного табличного пространства переопределяет
стандартную оценку планировщиком стоимости чтения страниц из таблиц в
этом табличном пространстве и поведение исполнителя при упреждающей выборке, заданные
параметрами конфигурации с тем же
именем (см. seq_page_cost,
random_page_cost,
effective_io_concurrency,
maintenance_io_concurrency). Это может быть полезно, если
табличное пространство расположено на диске, который работает быстрее или медленнее, чем
остальная часть подсистемы ввода-вывода.
CREATE TABLESPACE не может быть выполнена внутри блока транзакции.
Создание табличного пространства dbspace в расположении файловой системы
/data/dbs, сначала создайте каталог средствами операционной системы и установите корректного владельца:
mkdir /data/dbs chown postgres:postgres /data/dbs
Затем выполните команду создания табличного пространства: Digital Q.DataBase:
CREATE TABLESPACE dbspace LOCATION '/data/dbs';
Чтобы создать табличное пространство, владельцем которого будет другой пользователь базы данных, используйте следующую команду:
CREATE TABLESPACE indexspace OWNER genevieve LOCATION '/data/indexes';
CREATE TABLESPACE является Digital Q.DataBase
расширением.