CREATE TABLESPACE

名前

CREATE TABLESPACE -- 新しいテーブル空間を定義する

概要

CREATE TABLESPACE tablespace_name
    [ OWNER user_name ]
    LOCATION 'directory'
    [ WITH ( tablespace_option = value [, ... ] ) ]

説明

CREATE TABLESPACEはクラスタ全体で使用できるテーブル空間を新規に登録します。 このテーブル空間名は、データベースクラスタ内の既存のテーブル空間名と異なるものでなければなりません。

テーブル空間を使用すると、データベースオブジェクト(テーブルやインデックスなど)が入ったデータファイルを格納する、ファイルシステム上の別の場所をスーパーユーザができます。

適切な権限を持つユーザは、CREATE DATABASECREATE TABLECREATE INDEXADD CONSTRAINTコマンドにtablespace_nameを渡すことで、これらのオブジェクトを指定したテーブル空間に格納することができます。

警告

テーブル空間は、それが定義されているクラスタと独立して使うことはできません。 項21.6>を参照してください。

パラメータ

tablespace_name

作成するテーブル空間の名前です。 pg_から始まる名前はシステムのテーブル空間用に予約されているので使用することはできません。

user_name

テーブル空間を所有するユーザの名前です。 省略時はデフォルトでコマンドを実行したユーザとなります。 テーブル空間を作成できるのはスーパーユーザのみですが、テーブル空間の所有権を非スーパーユーザに割り当てることは可能です。

directory

テーブル空間用に使用するディレクトリです。 このディレクトリは空であるべきです。また、PostgreSQLのシステムユーザが所有していなければなりません。 このディレクトリは絶対パス名で指定する必要があります。

tablespace_option

値を設定あるいはリセットするテーブル空間のパラメータです。 現在、利用可能なパラメータはseq_page_costrandom_page_costだけです。 特定のテーブル空間について、そのいずれかの値を設定すると、そのテーブル空間内のテーブルからページを読み込むコストの推定値について、プランナが通常参照する同じ名前の設定パラメータ(seq_page_costrandom_page_costを参照)よりも優先します。 テーブル空間が、他のI/Oサブシステムより高速あるいは低速なディスク上にある時は、これが有効でしょう。

注釈

テーブル空間は、シンボリックリンクをサポートしているシステムでのみサポートされます。

トランザクションブロック内でCREATE TABLESPACEを実行することはできません。

/data/dbsにテーブル空間dbspaceを作成します。

CREATE TABLESPACE dbspace LOCATION '/data/dbs';

/data/indexesに、ユーザgenevieveが所有するテーブル空間indexspaceを作成します。

CREATE TABLESPACE indexspace OWNER genevieve LOCATION '/data/indexes';

互換性

CREATE TABLESPACEPostgreSQLの拡張です。

関連項目

CREATE DATABASE, CREATE TABLE, CREATE INDEX, DROP TABLESPACE, ALTER TABLESPACE