PostgreSQL 表空间

一 介绍
使用表空间可以将不同的表放到不同的存储介质或不同的文件系统下,实际上是为表指定一个存储的目录。
创建数据库,表,索引时可以指定表空间,将数据库,表,索引放到指定的目录下。

二 使用示例

创建表空间
create tablespace tbs_data location '/home/postgres/tbs_data';

查看
\db
List of tablespaces
Name | Owner | Location
------------+----------+-------------------------
pg_default | postgres |
pg_global | postgres |
tbs_data | postgres | /home/postgres/tbs_data
(3 rows)

创建数据库
create database db_tbs tablespace tbs_data;
更改数据库
alter database db_tbs set tablespace tbs_data;

查看
\l+ db_tbs
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace | Description
--------+----------+----------+-------------+-------------+-------------------+---------+------------+-------------
db_tbs | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 6984 kB | tbs_data |
(1 row)

创建表
create table t_tbs1(id int ,name varchar,t text) tablespace tbs_data;
alter table t_tbs1 set tablespace tbs_data;

\d+ t_tbs1
Table "public.t_tbs1"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-------------------+-----------+----------+--------------+-------------
id | integer | | plain | |
name | character varying | | extended | |
t | text | | extended | |
Tablespace: "tbs_data"

三 表空间目录说明

默认表空间pg_deflaut 的目录位置为base文件夹

ls /var/lib/postgresql/9.5/main/base/
1 12410 12415 126072 16384 23868 27602 pgsql_tmp

ls /home/postgres/tbs_data/PG_9.5_201510051/
128848 130024 27602

ls -al /var/lib/postgresql/9.5/main/pg_tblspc/
total 8
drwx------ 2 postgres postgres 4096 9月 19 14:45 .
drwx------ 19 postgres postgres 4096 9月 19 15:02 ..
lrwxrwxrwx 1 postgres postgres 23 9月 19 14:45 129008 -> /home/postgres/tbs_data

select oid,datname from pg_database ;
oid | datname
--------+------------------
1 | template1
12410 | template0
12415 | postgres
16384 | index_t
128848 | pgbench
130024 | db_tbs
23868 | sentry
27602 | new_test

进一步查看表存储位置

tree 27602/
27602/
├── 130015
├── 130015_fsm
├── 130015_vm
├── 130016
├── 130016_fsm
├── 130016_vm
├── 130017
├── 130018
├── 130021
├── 130023
├── 130025
├── 130028
└── 130030

new_test=# \d+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+----------------+-------+----------+------------+-------------
public | score | table | postgres | 0 bytes |
public | student | table | postgres | 0 bytes |
public | t_fillfactor | table | postgres | 8192 bytes |
public | t_fillfactor01 | table | postgres | 8192 bytes |
public | t_tbs | table | postgres | 6240 kB |

select oid,relname , reltablespace ,relfilenode from pg_class where relname = 't_tbs';
oid | relname | reltablespace | relfilenode
--------+---------+---------------+-------------
129009 | t_tbs | 129008 | 130015

PostgreSQL 表空间的更多相关文章

  1. PostgreSQL表空间、模式、表、用户/角色之间的关系

    PostgreSQL表空间.模式.表.用户/角色之间的关系是本文我们主要要介绍的内容,表空间,数据库,模式,表,用户,角色之间的关系到底是怎样的呢?接下来我们就开始介绍这一过程. 实验出角色与用户的关 ...

  2. PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系

    看PostgreSQL9的官方文档,我越看越迷糊,这表空间,数据库,模式,表,用户,角色之间的关系怎么在PostgreSQL里这么混乱呢?经过中午的一个小实验,我逐渐理清了个中来龙去脉.下面我来还原我 ...

  3. PostgreSQL表空间

    postgres=# \h create tablespace Command: CREATE TABLESPACEDescription: define a new tablespaceSyntax ...

  4. 创建postgresql表空间

    mkdir -p /data/pg_data/tsp sudo chown -R postgres:postgres /data/pg_data/tsp 用下面的命令断开其它的链接 登陆服务器psql ...

  5. postgresql 表空间创建、删除

    表空间:字面上理解就是表存储的物理空间,其实包括数据库的表.索引.序列等. 可以将表空间创建在服务器的不同分区,这样做的好处有: 一.如果初始化集群所在分区已经用光,可以方便的其他分区上创建表空间已达 ...

  6. postgresql基本操作:查看数据库、索引、表、表空间大小

    一.简介 PostgreSQL 提供了多个系统管理函数来查看表,索引,表空间及数据库的大小,下面详细介绍一下. 二.数据库对象尺寸函数 函数名 返回类型 描述 pg_column_size(any) ...

  7. PostgreSQL的表空间

    1. 表空间的概念 PostgreSQL中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置.在PostgreSQL中表空间实际上就是给表指定一个存储目录. 2. 表空间的作用 官方解释 ...

  8. postgresql 数据库,模式,表空间的关系

    数据库与模式模式(schema)是对数据库(database)逻辑分割在数据库创建的同时,就已经默认为数据库创建了一个模式--public,这也是该数据库的默认模式.所有为此数据库创建的对象(表.函数 ...

  9. PostgreSQL在不同的表空间移动数据文件

    一.背景 在工作中,可能会遇到将表从一个表空间移动另一个表空间.例如 * 对数据进行冷处理 * 表空间所在的磁盘空间不足 * 建表时分配错了表空间 以上等等,可能需要你将一个表移动表空间. 二.表空间 ...

随机推荐

  1. Log4j(1)--hellloworld

    创建项目: 使用的是log4j-1.2.17.jar: log4j.properties: log4j.rootLogger=DEBUG, Console ,File #Console log4j.a ...

  2. [转]iis 重新安装后 重新注册asp.net

    iis 重新安装后 重新注册asp.net 服务器IIS问题: 卸载并重新安装了IIS.... 解决方法:原因是IIS重装后要重新安装一下.NET Framework. 开始-->运行--> ...

  3. [C#][Log4Net] 配置

    <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSe ...

  4. Window 端口占用

    Windows平台 在windows命令行窗口下执行: 1.查看所有的端口占用情况 C:\>netstat -ano 协议    本地地址                     外部地址    ...

  5. VS2017如何配置openGL环境

    转自:http://blog.csdn.net/qq_26982531/article/details/62056913 这里着重介绍vs2017配置openGL环境与以前版本的不同之处:       ...

  6. oracle 跨库访问

    创建DBLINK的方法: 1. create public database link dblink connect to totalplant identified by totalplant us ...

  7. Linux-vim编辑器与shell的简介

    VIM编辑器  vi是Visual interface的简称,它可以执行输出.删除.查找.替换.块操作等众多文本操作. 用户可以根据自己的需要对vim进行定制,这是其他编辑程序所没有的. vim不是一 ...

  8. mysql修复表

    数据库Table xxx is marked as crashed and should be repaired错误的解决方法服务器断电等原因可能导致数据表损坏,导致访问的时候提示:Table xxx ...

  9. XE7 update1

  10. DB2 日期时间函数

    db2日期时间函数 (DATE(TRIM(CHAR(DT#11Y))||'-'||TRIM(CHAR(DT#11M))||'-'||TRIM(CHAR(DT#11D))) BETWEEN DATE(' ...