当前位置: 首页 > news >正文

pg入门3—详解tablespaces2

pg默认的tablespace的location为空,那么如果表设置了默认的tablespace,数据实际上是存哪个目录的呢?

在 PostgreSQL 中,如果你创建了一个表并且没有显式指定表空间(tablespace),或者表空间的 location 为空,数据将存储在数据库集群的默认数据目录中。这是 PostgreSQL 的数据存储默认行为。

1. 默认表空间和默认位置

PostgreSQL 有一个默认的表空间,叫 pg_default,它并没有设置显式的物理位置。当你没有指定表空间时,数据会被存储在 pg_default 表空间下。pg_default 表空间的位置实际上指向 PostgreSQL 数据目录下的 base 目录。

  • PostgreSQL 的数据目录通常是在初始化数据库集群时通过 initdb 指定的,或者在 PostgreSQL 的配置文件 postgresql.conf 中通过 data_directory 参数设置。
  • pg_default 表空间默认情况下会指向这个数据目录的 base 目录。

2. 数据存储位置

数据的存储位置具体在数据目录下的 base 目录中。每个数据库都有一个对应的 OID(对象标识符),在 base 目录中会有一个与数据库 OID 对应的子目录。表的数据最终会存储在该子目录中。

例如

  • 假设你的 PostgreSQL 数据目录是 /var/lib/postgresql/data/,那么:
    • 默认表空间 pg_default 指向的路径将是 /var/lib/postgresql/data/base/
    • 每个数据库会在 base 目录下有一个子目录,该子目录的名字是该数据库的 OID。

3. 如何查看数据库的 OID

你可以通过以下 SQL 查询来查看数据库的 OID:

SELECT oid, datname FROM pg_database;

每个数据库在 base 目录下的子目录名就是这个 OID。

4. 举例说明

假设 PostgreSQL 的数据目录位于 /var/lib/postgresql/data/,且你在名为 mydb 的数据库中创建了一张表,而没有指定表空间。那么:

  • PostgreSQL 会在 /var/lib/postgresql/data/base/ 中创建一个名为 mydb 数据库 OID 对应的子目录。
  • 该表的数据文件会保存在这个 OID 子目录下。

因此,即便你没有设置表空间或者 location 为空,数据仍然会被存储在 PostgreSQL 数据目录下的相应位置中。

http://www.lryc.cn/news/441758.html

相关文章:

  • python 爬虫 selenium 笔记
  • git分支管理的一些常用规范
  • GPT-4论文阅读
  • this 指向
  • 【贪心算法】贪心算法一
  • windnd.hook_dropfiles中的create_buffer值太小无法拖放长文件名
  • Gitlab runner的使用示例(二):Maven + Docker 自动化构建与部署
  • QNX Hypervisor(十)Linux Guest IPC 二
  • 怎样把PPT上顽固的图标删了
  • 【论文阅读】Slim Fly: A Cost Effective Low-Diameter Network Topology 一种经济高效的小直径网络拓扑
  • Prometheus使用Pushgateway推送数据
  • 【Oracle】调优与oracle最大连接数配置
  • Unity教程(十六)敌人攻击状态的实现
  • ​图像超分辨率(ISR)​
  • 园区网基础组网保姆级(mstp,vrrp,irf,eth-trunk,route-policy,ospf,bgp,rbm,nat,mlag等等)
  • 大数据技术原理与应用
  • 《黑神话悟空》开发框架与战斗系统解析
  • 网络资源模板--Android Studio 通讯录App
  • Spring 出现 No qualifying bean of type ‘com.xxx‘ available 解决方法
  • C# 批量更改文件后缀名称
  • KIC算法介绍及pyrosetta示例代码
  • 【论文串烧】多媒体推荐中的模态平衡学习 | 音视频语音识别中丢失导致的模态偏差对丢失视频帧鲁棒性的影响
  • 【C语言二级考试】循环结构设计
  • 诗文发布模板(python代码打造键盘录入诗文自动排版,MarkDown源码文本)
  • GO主流开源框架
  • LeetCode:2398. 预算内的最多机器人数目 双指针+单调队列,时间复杂度O(n)
  • oracle 插入date日期类型的数据、插入从表中查出的数据,使用表中的默认数据
  • 物流系统打单软件 佳易王物流运单怎么打印教程
  • 二叉树计算
  • Java并发执行举例