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. ubuntu 16.04安装Chrome离线crx插件包

    /opt/google/chrome/google-chrome --enable-easy-off-store-extension-install 打开浏览器后,输入chrome://extensi ...

  2. ES6系列_15之class类的使用

    JS语言的传统方法是通过构造函数,定义并生成新对象,是一种基于原型的面向对象系统.在ES6中新增加了类的概念,可以使用 class 关键字声明一个类,之后以这个类来实例化对象.1.先来看看es5与es ...

  3. 「小程序JAVA实战」小程序的视频点赞功能开发(62)

    转自:https://idig8.com/2018/09/24/xiaochengxujavashizhanxiaochengxudeshipindianzangongnengkaifa61/ 视频点 ...

  4. FoxPro 数据库文件及记录命令

    ADDTABLE 在当前数据库中添加一个自由表 APPEND 在表的末尾添加一个或多个新记录 APPEND FROM ARRAY 由数组添加记录到表中 APPEND FROM 从一个文件中读入记录,追 ...

  5. Guidelines for Installing Oracle HR Sample Schemas

    All scripts necessary to install sample schemas reside in $ORACLE_HOME/demo/schema directory. Before ...

  6. 在Linux下访问Windows共享文件夹

    说明 以下操作以Ubuntu为例,大家可以参考. 我在Ubuntu 14.04和16.04都试过了. Windows共享文件夹 如果局域网内有一台Windows主机,将指定文件夹设为共享,就可以在局域 ...

  7. ibatis 常用标签

    prepend:自动在前面加上:自动新手:自动预:自动前置 property:属性 compareValue:指定的常数,值 //判断不相等: <isNotEqual prepend=" ...

  8. 利率计算v2.0--web版--软件工程

    .客户说:帮我开发一个复利计算软件. .如果按照单利计算,本息又是多少呢? .假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢? .利率这么低,复利计算 ...

  9. 4.jsp学习

    1.创建 2.命名 3.utf-8防止乱码 5.导出WAR文件

  10. dedecms实例化对象

    1.建表 2.创建实体类 4.tc文件加载该实体类 5.用的时候,引入tc.php文件,并实例化