【PostgreSQL】表空间

在PostgreSQL中,表空间实际上是为表指定一个存储目录,这样方便我们把不同的表放在不同的存储介质或者文件系统中。在创建数据库、表、索引时都可以指定表空间。

1. 创建表空间

--表空间目录必须是系统中已存在的目录
test=# create tablespace tb_01 location ‘/opt/postgresql/data/pg_data‘;
CREATE TABLESPACE

2. 创建数据库,指定表空间

test=# create database test01 tablespace tb_01;
CREATE DATABASE

3. 修改数据库的表空间

test=# alter database test01 set tablespace tb_02;
ALTER DATABASE--修改数据库的默认表空间后,数据库中表的表空间不会改变。

4. 建表时,指定表空间

test=# create table t1 (id int,note text) tablespace tb_01;
CREATE TABLE

5. 创建索引时,指定表空间

test=# create index idx_t1_id on t1(id) tablespace tb_02;
CREATE INDEX

6. 增加约束时,指定表空间

test=# alter table t1 add constraint unique_t1_id unique (id) using index tablespace tb_02;
ALTER TABLE
test=# alter table t1 add constraint pk_t1_id primary key (id) using index tablespace tb_02;
ALTER TABLE

7. 把表移动到新的表空间

test=# alter table t1 set tablespace tb_02;
ALTER TABLE
--表移动过程中会被锁定,所有的操作都被阻塞,包括Select,所以要选择合适的时间移动表。

The End!

2017-08-20

时间: 2024-12-13 02:42:45

【PostgreSQL】表空间的相关文章

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

PostgreSQL表空间.模式.表.用户/角色之间的关系是本文我们主要要介绍的内容,表空间,数据库,模式,表,用户,角色之间的关系到底是怎样的呢?接下来我们就开始介绍这一过程. 实验出角色与用户的关系 在PostgreSQL中,存在两个容易混淆的概念:角色/用户.之所以说这两个概念容易混淆,是因为对于PostgreSQL来说,这是完全相同的两个对象.唯一的区别是在创建的时候: 1.我用下面的psql创建了角色kanon:CREATE ROLE kanon PASSWORD 'kanon';接着

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

看PostgreSQL9的官方文档,我越看越迷糊,这表空间,数据库,模式,表,用户,角色之间的关系怎么在PostgreSQL里这么混乱呢?经过中午的一个小实验,我逐渐理清了个中来龙去脉.下面我来还原我的试验,并循序讲清其中关系. 首先,实验出角色与用户的关系    在PostgreSQL中,存在两个容易混淆的概念:角色/用户.之所以说这两个概念容易混淆,是因为对于PostgreSQL来说,这是完全相同的两个对象.唯一的区别是在创建的时候: 1.我用下面的psql创建了角色kanon:   CRE

PostgreSQL表空间

postgres=# \h create tablespace Command: CREATE TABLESPACEDescription: define a new tablespaceSyntax:CREATE TABLESPACE tablespace_name [ OWNER user_name ] LOCATION 'directory' [ WITH ( tablespace_option = value [, ... ] ) ] postgres=# create tablespa

PostgreSQL表空间的使用

一.介绍 表空间的作用就是允许数据库管理员定义一个其他非数据目录的位置存储数据库对象. 使用场景之一是,如果机器新加了ssd,但是又不够整个实例使用,可以将一些重要和使用频率高的表和索引放到ssd上,提高查询效率 二.创建表空间 先创建要保存表空间的目录 # mkdir -p /export/tablespace1 # chown -R postgres: /export/tablespace1/ 进入数据库 postgres=# \db        List of tablespaces  

postgresql 表空间创建、删除

表空间:字面上理解就是表存储的物理空间,其实包括数据库的表.索引.序列等. 可以将表空间创建在服务器的不同分区,这样做的好处有: 一.如果初始化集群所在分区已经用光,可以方便的其他分区上创建表空间已达到扩容的目的. 二.对于频繁访问的数据可以存储在性能较高.较快的磁盘分区上,而不常用的数据存储在便宜的较慢的磁盘分区上. 语法: postgres=# \h create tablespace Command:     CREATE TABLESPACEDescription: define a n

生产环境修改PostgreSQL表索引对应的表空间

通过iostat命令发现某块磁盘的io使用率经常保持在100%,通过blkid命令获取linux raid存储盘符和挂载点的关系后,最后发现是挂载点上的一个数据库表空间在占用大io. 现象 [email protected]:~$ iostat -xm 3 |grep -v dm avg-cpu:  %user   %nice %system %iowait  %steal   %idle           11.68    0.00    3.82    8.63    0.00   75.

PostgreSQL的表空间

PostgreSQL中的表空间允许数据库管理员在文件系统中定义可以存储表示数据库对象的文件的位置.创建后,可以在创建数据库对象时按名称引用表空间. 通过使用表空间,管理员可以控制PostgreSQL安装的磁盘布局.这至少在两个方面很有用.首先,如果初始化集群的分区或卷空间不足并且无法扩展,则可以在不同的分区上创建表空间并使用,直到可以重新配置系统.其次,表空间允许管理员使用数据库对象的使用模式的知识来优化性能.例如,非常频繁使用的索引可以放置在非常快速,高度可用的磁盘上,如昂贵的固态设备.同时,

Oracle 表空间和用户权限管理

一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻辑结构的一个重要组件. 表空间可以存放各种应用对象,如表.索引等. 而每一个表空间由一个或多个数据文件组成. 1. 表空间的分类 表空间可分为3类: 永久性表空间:一般保存表.上天.过程和索引等数据.system.sysaux.users.example表空间是默认安装的. 临时性表空间:只用于保存

MySQL 表空间传送

1.源库查询表结构 mysql> show create table s_show\G *************************** 1. row ***************************        Table: study_show Create Table: CREATE TABLE `study_show` (   `id` int(11) unsigned NOT NULL AUTO_INCREMENT,   `uid` int(11) DEFAULT '0'