PostgreSQL的表空间

PostgreSQL之表空间

1、什么是PG中的表空间(tablespace)?

pg中的表空间实际上就是文件系统中的一个目录, 是pg中数据库对象(包括表、索引等)的容器。

Pg使用操作系统的文件系统进行对象存储,每个数据库对象都有自己的数据文件,如果对象很大,它将会被分为多个文件,单个文件大小的上限是1GB。表空间就是包含这些数据文件的目录。

简而言之,表空间是告诉PG服务器将数据库对象的物理文件放在哪里。

2、表空间的分类?

默认表空间:pg_default ,是用户表、用户表index、和临时表、临时表index、内部临时表的默认空间。对应文件系统目录$PADATA/base/。

系统字典表表空间:pg_global,存放系统字典表,如pg_database、pg_authid、pg_tablespace等表以及它们的索引。对应文件系统目录$PADATA/global/。

自定义表空间:用户创建的表空间。对应文件系统目录$PADATA/pg_tblspc/, 当手动创建表空间时,该目录下会自动生成一个软链接,指向表空间设定的路径。

其中pg_default和pg_global是在PG集群initdb之后默认创建的。

3、查看当前集群中所有的表空间?

PSQL使用"\db+"命令,可以详细列出表空间。

也可以使用sql查看所有表空间:

select oid,* from pg_tablespace;

4、表空间的创建和使用?

1)要创建表空间,首先创建一个新目录,注意该目录需要属于“postgres”操作系统用户。

2)使用sql创建表空间。

CREATE TABLESPACE mytbsp LOCATION '/tmp/mytbsp';

3)使用表空间。

大多数“create” SQL命令都带有一个“TABLESPACE”选项,我们可以使用这个选项指定SQL对象的表空间。

如:

在表空间mytbsp中创建一个名为testdb的数据库。注:此后该数据库中所有对象的默认表空间也成为mytbsp。

create database testdb tablespace mytbsp;

在mytbsp表空间中创建一个表newtab。

CREATE TABLE newtab (

   id  integer NOT NULL,

   val text    NOT NULL

) TABLESPACE mytbsp;

注意:索引并不会继承与表的表空间。

在mytbsp表空间中创建索引对象。

CREATE INDEX newtab_val_idx ON newtab (val)
   TABLESPACE mytbsp;

另外,ALTER命令可以更改任何对象的表空间。

更改newtab的表空间为pg_default。

alter table newtab set tablespace pg_default;

我们也可以将一个表空间中的所有表(或索引)都移动到另外一个表空间。

alter table all in tablespace mytbsp set tablespace pg_default;

注意:将对象移动到另一个表空间将复制数据文件,在这个期间涉及到的对象将被锁定,不可访问。

5、含有自定义表空间的集群的备份?

如果对包含表空间的数据库执行文件系统备份,则必须备份所有表空间。

使用普通格式的pg_basebackup将尝试将表空间保存在与数据库服务器上相同的位置(-D选项仅指定数据目录的位置)。要将数据从表空间备份到不同的位置,必须使用选项--tablespace-mapping=olddir=newdir。对于多个表空间,可以多次使用此选项。

pg_basebackup --format=p --tablespace-mapping=/tmp/mytbsp=/tmp/mytbsp2backup -D plainbackup

6、流复制场景下使用表空间?

流复制场景下表空间的使用稍微复杂点,因为新表空间的路径没有同步到备用服务器上。备用服务器上会期望在与主服务器相同的位置上有一个现有目录,并在该位置上创建一个表空间。

7、使用表空间的优点?

当存储分区没有空间时,可以使用表空间把数据存到其他分区。

利用表空间对数据库进行性能优化。如频繁使用的数据表或索引放在高性能的硬盘上,而较少使用的放在普通硬盘上。(注意,这时候需要调整表空间参数:seq_page_cost和random_page_cost

8、使用表空间的缺点?

使用表空间使数据库管理(比如备份和流复制)更加复杂,因为数据目录不再包含所有数据。

9、其他

临时表空间: 临时表和索引是由PostgreSQL在显式请求(“CREATE TEMP TABLE..”)或需要临时保存大数据集以完成查询时创建的。可以告诉PG将这些对象放在单独的表空间中。例如,如果在正常过程中创建了太多临时表,那么可以通过将这些对象放在具有更快、更大、未压缩文件系统甚至内存文件系统的表空间中来加快查询速度。使用选项temp_tablespaces告诉Postgres使用哪个表空间创建临时表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/73183.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle表空间、用户详解

目录 新建连接三者关系表空间创建表空间修改表空间和数据文件修改数据文件容量新增表空间的数据文件重命名数据文件修改表空间状态修改数据文件状态 删除表空间查询 用户创建删除查询修改 新建连接 工具选择: 我们一般会选择一个工具来连接本地的Oracle&#xff0c…

49-Linux_malloc及4G虚拟空间分布

文章目录 malloc及4G虚拟空间分布1.malloc2.32位操作系统进程的4G虚拟空间分布1) 代码区(Text egment):2) 全局初始化数据区/静态数据区(Data Segment)3) 未初始化数据区(BSS):4) 堆区(heap):5) 栈区(stack): malloc及4G虚拟空间分…

(微信开发)Laya转发H5网页到微信,带图片

网页转发到微信时,带图片和自定义标题。2022年11月22号 关键解说 _wx.config({ debug: _wx_configdebug, appId: e.appId, timestamp: e.timestamp, nonceStr: e.nonceStr, signature: e.signature, jsApiList: [ // 所有要调用的 API 都要加到这个列表中 ‘onMen…

移动端H5页面开发的几种方法

单位: px 宽度百分比,高度px 在不同屏幕下的效果是不一样的,可用媒体查询(media)对不同宽度的手机进行适配,麻烦,不推荐使用 单位:rem 1、flexible 用法:https://blog.c…

H5页面调用微信支付

1、H5页面使用微信支付,首先需要注册微信公众号,在设置与开发>公众号设置>功能设置中配置业务域名、JS接口安全域名、网页授权域名。支付功能页面需在此域名链接下的页面。 2、加入域名后,就可以在H5页面调用微信支付功能。首先请求后台…

H5实现移动端,PC端页面分享

想做个页面分享功能,既要兼容移动端,也要兼容PC端。 找了一轮,决定PC端用百度分享的api: http://share.baidu.com/code/advance 移动端一开始想用soshm.js,发现ios没问题,但安卓手机在微信上点微博完全没…

app端内h5页面使用微信h5支付

app端内h5页面使用微信h5支付 app端内h5页面使用微信h5支付一、起初使用的方法二、解决方法三、最后 app端内h5页面使用微信h5支付 一、起初使用的方法 在对接支付宝支付的时候,我是使用window.open()直接打开后端返回的链接,完全没有任何问题&#xf…

H5页面内嵌到微信小程序和APP,做分享操作

前言 最近接到项目新需求,H5项目需要内嵌到微信小程序和APP里,然后将H5页面分享出去,被分享的人可以点击消息跳转到H5页面。H5页面不难,难的是要与微信小程序和APP进行交互,因为以前也没有接触过,所以这里…

H5及H5页面是什么意思?如何制作H5页面?

H5是HTML5的简称。HTML5是HTML最新的修订版本,是一种超文本标记语言。H5有两大特点:首先,强化了 Web 网页的表现性能。其次,追加了本地数据库等 Web 应用的功能。 H5页面就是利用html5制作出来的页面,尤其在微信中发展…

不懂技术,如何轻松制作微信H5页面?

H5这个由HTML5简化而来的词汇,正通过微信广泛传播。H5是集文字、图片、音乐、视频、链接等多种形式的展示页面,丰富的控件、灵活的动画特效、强大的交互、实现信息传播,非常适合通过手机的展示、分享。也因其灵活性高、开发成本低、制作周期短…

Java基础语法练习题

2023.2.18刷题 1、java的4类流程控制语句 解析: java的4类流程控制语句 循环语句:while,for,do while 选择语句(分支语句):if,switch 跳转语句:break,continue,break,label 异常处理…

java里在做TCP通讯的时候,一直报java.net.ConnectException: Connection timed out: connect的错误?

可能的你的ip地址发生了变化: 1.在cmd里面输入: ipconfig 2.找到ipv4地址 3.把客户端的Socket S new Socket("192.168.31.65",10002);的192.168.31.65改成现在的即可。

websock报错:The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for caller

网上看到了一些关于这个错误的产生场景 参考:场景:使用websocket遇到的一个小问题 The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid stat 我这里产生错误的场景是不同的,记录一下 背景 提供websocket服务的…

神经元模型简单制作方法,神经元的简单模型图解

神经元结构图示 (1)由图一可知,图一结构中涉及到3个神经元,含有2个突触,其中A是轴突(神经纤维),B是树突. (2)图二中①是感受器、②是传入神经、③…

HH神经元模型

1、HH神经元的电路图。 电池表示特定离子的平衡电势,电阻器反映通道对特定离子的渗透性。 电容代表的就是细胞膜,存储电荷,起到了电容的作用。 在这个公式中IL代表的是泄露电流,图中它的电路中就是一个电阻R和一个电源的分路&…

神经网络输出层多个神经元

由于matlab升级,已经不能想以前一样直接在newff函数里面规定好隐含层多少个,或者几层,还可以有多个神经元的输出层。改版后需要输出层变成矩阵的形式,神经网络工具箱可以自动识别输出层有几个神经元。详细代码如何下: …

训练神经网络用什么显卡,cpu可以训练神经网络吗

gpu构架为什么更适合发展神经网络 因为神经网络这种大范围多任务的简单运算来说,正好符合GPU这种多核架构,比如你CPU20核心,同时处理20个任务。但是神经网络可能有20000个任务(比喻)。 但最近比较有代表性的GPU-Nvid…

单个神经元

先来看一下单个神经元网络模型: 其中 xi 表示输入,wi 和 b 表示参数。图中下方的公式是 1 函数的模型,嗯,就是一个线性模型。那么就这么一个简单的线性模型怎么仿真出人类神经元那么复杂的玩意儿呢?一个线性模型当然满…

人工神经元模型及常见激活函数

人工神经元模型 生物学上神经元通常由细胞体,细胞核,树突和轴突构成。 树突用来接收其他神经元传导过来的信号,一个神经元有多个树突; 细胞核是神经元中的核心模块,用来处理所有的传入信号; 轴突是输出信…

神经元是个啥子

空间平面的方程 这是一个似曾相识的方程👇 b ∑ n 1 N x n θ n i n 0 b\sum_{n1}^Nx_n\theta_n\bm{i}_n0 bn1∑N​xn​θn​in​0 没错,它描述了空间中的一个平面。其关于每一个坐标轴都有斜率 θ i \theta_i θi​,而 i n 为 这 个 轴…