Создаем базу данных:
=> CREATE DATABASE data_physical;
CREATE DATABASE
=> \c data_physical
You are now connected to database "data_physical" as user "student".
Табличное пространство:
postgres$ mkdir /var/lib/postgresql/ts_dir
=> CREATE TABLESPACE ts LOCATION '/var/lib/postgresql/ts_dir';
CREATE TABLESPACE
Создаем таблицу:
=> CREATE TABLE t(n integer) TABLESPACE ts;
CREATE TABLE
=> INSERT INTO t SELECT 1 FROM generate_series(1,1000);
INSERT 0 1000
Объем базы данных:
=> SELECT pg_size_pretty(pg_database_size('data_physical')) AS db_size;
db_size --------- 6885 kB (1 row)
Размер таблицы:
=> SELECT pg_size_pretty(pg_total_relation_size('t')) AS t_size;
t_size -------- 56 kB (1 row)
Объем табличных пространств:
=> SELECT pg_size_pretty(pg_tablespace_size('pg_default')) AS pg_default_size, pg_size_pretty(pg_tablespace_size('ts')) AS ts_size;
pg_default_size | ts_size -----------------+--------- 440 MB | 60 kB (1 row)
Размер табличного пространства несколько больше размера таблицы за счет служебных файлов, хранящихся в каталоге табличного пространства.
Перенесем таблицу:
=> ALTER TABLE t SET TABLESPACE pg_default;
ALTER TABLE
Новый объем табличных пространств:
=> SELECT pg_size_pretty(pg_tablespace_size('pg_default')) AS pg_default_size, pg_size_pretty(pg_tablespace_size('ts')) AS ts_size;
pg_default_size | ts_size -----------------+------------ 440 MB | 4096 bytes (1 row)
Удаляем табличное пространство:
=> DROP TABLESPACE ts;
DROP TABLESPACE