PostgreSQL: 查看 table 在磁盘上的存储位置

news/2024/7/9 21:32:50 标签: postgresql, 数据库

目录

一、查看数据库文件位置

二、查看表文件位置


一、查看数据库文件位置

-- 数据库名字是 catdb
select oid,datname from pg_database where datname = 'catdb';

  oid  | datname 
-------+---------
 16638 | catdb

那么数据库 catdb 的文件就存储在了目录 ${PGDATA}/base/16638 里面。

$ ls -l ${PGDATA}/base/
total 48
drwx------ 2 postgres postgres  4096 Nov  5 11:57 1
drwx------ 2 postgres postgres  4096 Nov  5 11:57 13756
drwx------ 2 postgres postgres  4096 Nov  5 11:58 13757
drwx------ 2 postgres postgres 12288 Jan 11 04:43 16638
drwx------ 2 postgres postgres 20480 Jan 11 01:43 16902
drwx------ 2 postgres postgres  4096 Jan  6 06:19 pgsql_tmp

二、查看表文件位置

表 tasks 是数据库 catdb 中的一个table 。

-- 表的名字是 tasks
select oid,relfilenode from pg_class where relname = 'tasks';

  oid  | relfilenode 
-------+-------------
 16681 |       16681

可以看到查询到的 relfilenode 是 16681。综合第一步查询到的数据库的文件位置 16638,那么表 tasks 对应的文件就是:${PGDATA}/base/16638/16681

查看一下所有以 16681 开头的文件:

$ ls -hl ${PGDATA}/base/16638/16681*
-rw------- 1 postgres postgres 1.0G Jan 11 04:50 /home/pgdata/base/16638/16681
-rw------- 1 postgres postgres 1.0G Jan 11 04:50 /home/pgdata/base/16638/16681.1
-rw------- 1 postgres postgres 1.0G Jan 11 04:50 /home/pgdata/base/16638/16681.2
-rw------- 1 postgres postgres 187M Jan 11 04:52 /home/pgdata/base/16638/16681.3
-rw------- 1 postgres postgres 840K Jan 11 04:50 /home/pgdata/base/16638/16681_fsm
-rw------- 1 postgres postgres  96K Jan 11 04:50 /home/pgdata/base/16638/16681_vm

好多文件,为什么呢?

因为 PG 在存储表的数据时,默认情况下,当一个表占用的磁盘空间到了 1G的时候,就会对表文件进行分割。每个被分割出来的文件,都会加上一个顺序号,来代表是分割后的第几个文件。



http://www.niftyadmin.cn/n/788471.html

相关文章

44.分治算法练习:  一元三次方程求解

查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 有形如:ax3bx2cxd0 这样的一个一元三次方程。 给出该方程中各项的系数(a&#xf…

好冷的Python--tuple和逗号的恩怨情仇

原文链接:http://www.juzicode.com/archives/1499 在 《Python进阶教程m7b–混合编程–C语言接口ctypes(1)》中讲到封装C函数时的argstype ,以及在《Python进阶教程m10–多线程》 中讲到创建线程实例时传递函数入参args,如果参数只有一个时&…

go: 配置 vim 高亮插件

在早期的 golang 源代码包里面是有 vim 插件的,但是呢,到了1.4的源码包的时候,就删除了 vim 插件。所以我们需要从 1.3.3 版本的代码中获得 vim配置。 一、官网下载 可以从 golang 官网(Downloads - The Go Programming Langua…

Lucene/Solr/ElasticSearch搜索问题案例分析

最近收集的两个搜索的case,如下: 案例一: 使用 A关键词:“中国诚通控股公司”搜索,不能搜到 B结果“中国诚通控股集团有限公司” 从关键词字面上看,确实不应该出现这种问题,因为A的关键词…

DataBase -- Count Group by

SQL Count()函数: SQL COUNT(column_name)语法:COUNT(column_name)函数返回指定列的值得数目(NULL不计入)select count(column_name) from table_name SQL COUNT(DISTINCT column_name)语法:COUNT(DISTINCT column_nam…

Linux: 创建加密虚拟磁盘 cryptsetup

一、安装工具 cryptsetup sudo yum install cryptsetup# Ubuntu 系统执行如下命令 # sudo apt-get install cryptsetup 二、创建一个虚拟磁盘文件 dd if/dev/zero ofsecDisk.img bs1G count10 这个命令的意思就是从“黑洞”文件读取0数据,写入当前目录中的 secD…

Python进阶--多进程

原文链接:http://www.juzicode.com/archives/843 在 Python进阶教程m10–多线程 和 Python进阶教程m10b–多线程通信 我们介绍了多线程编程,并行编程模式中还有一种多进程编程模式,这篇文章将介绍到多进程编程。 1、编程模型 多进程需要用到…

ubuntu下Eclipse安装

安装的版本是MARS 直接复制安装包到安装的目录,然后tar zxvf XXXX 对于不能输入中文,把系统的输入法改成ibus就行了,fctix不支持eclipse 汉化包的下载地址 http://download.eclipse.org/technology/babel/update-site/R0.13.1/mars 步骤&…