当前位置: 首页 > 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 数据目录下的相应位置中。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Pandas中DataFrame表格型数据结构
  • 傅里叶变换的基本性质和有关定理
  • 硬件工程师笔试面试——保险丝
  • 【BoF】《Bag of Freebies for Training Object Detection Neural Networks》
  • 网络安全(黑客技术)2024年三个月自学计划
  • 3.接口测试的基础/接口关联(Jmeter工具/场景一:我一个人负责所有的接口,项目规模不大)
  • Visual Studio-X64汇编编写
  • 玩转RabbitMQ声明队列交换机、消息转换器
  • Python 入门教程(4)数据类型 | 4.4、布尔类型
  • QT 修改全局鼠标光标样式并支持还原样式
  • redis群集三种模式:主从复制、哨兵、集群
  • Java运算符有哪些?深入解析Java运算符:从基础到进阶的全方位指南(超全表格)
  • 『功能项目』QFrameWorkBug修改器界面【65】
  • firewalld封禁IP或IP段
  • 微信getUserProfile不弹出授权框
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • React as a UI Runtime(五、列表)
  • spring security oauth2 password授权模式
  • Vue2.x学习三:事件处理生命周期钩子
  • 初识MongoDB分片
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 机器学习中为什么要做归一化normalization
  • 基于webpack 的 vue 多页架构
  • 基于web的全景—— Pannellum小试
  • 计算机常识 - 收藏集 - 掘金
  • 嵌入式文件系统
  • 小程序 setData 学问多
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • # 达梦数据库知识点
  • ###C语言程序设计-----C语言学习(6)#
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • $.each()与$(selector).each()
  • (20)docke容器
  • (C++17) std算法之执行策略 execution
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)php投票系统 毕业设计 121500
  • (回溯) LeetCode 78. 子集
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (南京观海微电子)——示波器使用介绍
  • (三)c52学习之旅-点亮LED灯
  • (转)fock函数详解
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)jQuery 基础
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)甲方乙方——赵民谈找工作
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • *** 2003
  • .NET 8.0 发布到 IIS
  • .NET Micro Framework初体验(二)
  • .Net OpenCVSharp生成灰度图和二值图
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递