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. ddt数据驱动

    数据驱动原理 1.测试数据为多个字典的list类型 2.测试类前加修饰@ddt.ddt 3.case前加修饰@ddt.data() 4.运行后用例会自动加载成三个单独的用例 5.测试结果: Testi ...

  2. Java 简单TCP文件传输

    服务端 package TCP; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputSt ...

  3. [转][html]大文件下载

    上面代码来自微软,用于下载大文件. 下面代码来自 http://www.cnblogs.com/smile-wei/p/4159213.html System.IO.Stream iStream = ...

  4. CentOS下长时间ping网络加时间戳并记录到文本

    Linux下长时间ping网络加时间戳并记录到文本   由于一些原因,比如需要检查网络之间是否存在掉包等问题,会长时间去ping一个地址,由于会输出大量的信息而且最好要有时间戳,因此我们可以使用简单的 ...

  5. Hadoop详细安装配置过程

    步骤一:基础环境搭建 1.下载并安装ubuntukylin-15.10-desktop-amd64.iso 2.安装ssh sudo apt-get install openssh-server op ...

  6. 利用CSS3 filter:drop-shadow实现纯CSS改变图片颜色

    体验更优排版请移步原文:http://blog.kwin.wang/programming/css3-filter-drop-shadow-change-color.html 之前做项目过程中有时候遇 ...

  7. Git进阶--你可能不知道的很好用Git功能

    一.刚提交的代码,发现需要微调一下 刚刚最新提交了一段代码,然后跟前端说,接口好了.过了2分钟,前端跟你说,哎,兄弟,那个金额能不能返回整数,不要小数点. 这个时候一般我们通常会修改一下之后,再提交一 ...

  8. Intellij IDEA 启动项目ClassNotFoundException

    博客原文地址:https://blog.csdn.net/wo541075754/article/details/45640267 使用Intellij IDEA  的过程中,新创建的项目启动时报错: ...

  9. mysql查询大于X分钟数

    select * from table where   date_add(STR_TO_DATE(createtime,'%Y-%m-%d %T:%i:%s'), interval '00:60:00 ...

  10. asp.net安装指令

    cd \ cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319aspnet_regiis.exe -i注册.NET4到IIS