CREATE TABLESPACE tablespace_name [ OWNER user_name ] LOCATION 'directory' [ WITH ( tablespace_option = value [, ... ] ) ]
CREATE TABLESPACEはクラスタ全体で使用できるテーブル空間を新規に登録します。 このテーブル空間名は、データベースクラスタ内の既存のテーブル空間名と異なるものでなければなりません。
テーブル空間を使用すると、データベースオブジェクト(テーブルやインデックスなど)が入ったデータファイルを格納する、ファイルシステム上の別の場所をスーパーユーザができます。
適切な権限を持つユーザは、CREATE DATABASEやCREATE TABLE、CREATE INDEX、ADD CONSTRAINTコマンドにtablespace_nameを渡すことで、これらのオブジェクトを指定したテーブル空間に格納することができます。
警告 |
テーブル空間は、それが定義されているクラスタと独立して使うことはできません。 項21.6>を参照してください。 |
作成するテーブル空間の名前です。 pg_から始まる名前はシステムのテーブル空間用に予約されているので使用することはできません。
テーブル空間を所有するユーザの名前です。 省略時はデフォルトでコマンドを実行したユーザとなります。 テーブル空間を作成できるのはスーパーユーザのみですが、テーブル空間の所有権を非スーパーユーザに割り当てることは可能です。
テーブル空間用に使用するディレクトリです。 このディレクトリは空であるべきです。また、PostgreSQLのシステムユーザが所有していなければなりません。 このディレクトリは絶対パス名で指定する必要があります。
値を設定あるいはリセットするテーブル空間のパラメータです。 現在、利用可能なパラメータはseq_page_costとrandom_page_costだけです。 特定のテーブル空間について、そのいずれかの値を設定すると、そのテーブル空間内のテーブルからページを読み込むコストの推定値について、プランナが通常参照する同じ名前の設定パラメータ(seq_page_costとrandom_page_costを参照)よりも優先します。 テーブル空間が、他のI/Oサブシステムより高速あるいは低速なディスク上にある時は、これが有効でしょう。