当前位置:网站首页>Introduction to the internal structure of the data directory of PostgreSQL
Introduction to the internal structure of the data directory of PostgreSQL
2022-07-07 02:21:00 【happytree001】
One 、 Everything is Oid
stay Linux Everything in the book is a document , stay postgresql It's all about Oid.
1.1 What is? Oid
Object identifier(Oid), Object identifier . stay postgresql Inside , All database objects pass through the corresponding Oid Conduct management .
typedef unsigned int Oid;
Oid In the code is a 4 Unsigned integer of bytes .
1.2 database Oid
[email protected]:~$ /usr/local/pgsql/bin/psql
psql (14.2)
Type "help" for help.
postgres=# select datname,oid from pg_database where datname='test';
datname | oid
---------+-------
test | 16384
(1 row)
postgres=#
[email protected]:~$ ls /usr/local/pgsql/data/base/ -l
total 24
drwx------ 2 postgres postgres 4096 Jun 6 14:38 1
drwx------ 2 postgres postgres 4096 Jun 6 14:38 12971
drwx------ 2 postgres postgres 4096 Jul 4 12:50 12972
drwx------ 2 postgres postgres 4096 Jun 7 12:19 16384
drwx------ 2 postgres postgres 4096 Jun 11 02:01 24577
drwx------ 2 postgres postgres 4096 Jul 4 12:50 40960
1.3 surface Oid
[email protected]:~$ /usr/local/pgsql/bin/psql test
psql (14.2)
Type "help" for help.
test=# create table stu (name varchar(32), age int, sex char(2));
CREATE TABLE
test=# \dS+ stu
Table "public.stu"
Column | Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description
--------+-----------------------+-----------+----------+---------+----------+-------------+--------------+-------------
name | character varying(32) | | | | extended | | |
age | integer | | | | plain | | |
sex | character(2) | | | | extended | | |
Access method: heap
test=# select oid,relname from pg_class where relname = 'stu';
oid | relname
-------+---------
49152 | stu
(1 row)
test=#
[email protected]:~$ ls /usr/local/pgsql/data/base/16384/49152 -hal
-rw------- 1 postgres postgres 0 Jul 4 12:57 /usr/local/pgsql/data/base/16384/49152
Two 、 and MySQL contrast
database | Database storage | Table is stored | Coding impact |
---|---|---|---|
postgresql | The directory name is the corresponding Oid( Numbers ) | The file name is the corresponding Oid ( Numbers ) | Just a number , Unaffected |
mysql | The directory name is database name ( character string ) | The file name is the table name ( character string ) | be affected |
postgresql and mysql All use the database as a directory , The corresponding table is under the corresponding directory , Easy to find and manage .
3、 ... and 、 Data directory structure
[email protected]:/# tree /usr/local/pgsql/data/ -L 1
/usr/local/pgsql/data/
|-- PG_VERSION
|-- base
|-- global
|-- pg_commit_ts
|-- pg_dynshmem
|-- pg_hba.conf
|-- pg_ident.conf
|-- pg_logical
|-- pg_multixact
|-- pg_notify
|-- pg_replslot
|-- pg_serial
|-- pg_snapshots
|-- pg_stat
|-- pg_stat_tmp
|-- pg_subtrans
|-- pg_tblspc
|-- pg_twophase
|-- pg_wal
|-- pg_xact
|-- postgresql.auto.conf
|-- postgresql.conf
|-- postmaster.opts
`-- postmaster.pid
17 directories, 7 files
name | describe |
---|---|
PG_VERSION | pg Server master version number file |
base/ | All database directories are under this directory |
global/ | Database cluster wide tables ( such as pg_database, similar mysql Of performance_schema) |
pg_commit_ts/ | Timestamp data submitted by the transaction |
pg_dynshmem/ | Files used in the dynamic shared memory subsystem |
pg_hba.conf | control pg Client authentication configuration file |
pg_ident.conf | pg User mapping file |
pg_logical/ | Logically decoded status data |
pg_multixact/ | Multi transaction status data |
pg_notify/ | Listen/Notify Status data |
pg_replslot/ | Copy slot data |
pg_serial/ | Information about committed serializable transactions |
pg_snapshots/ | Snapshot information |
pg_stat/ | Permanent file of statistical subsystem |
pg_stat_tmp/ | Temporary files of statistical subsystem |
pg_subtrans/ | Sub transaction status data |
pg_tblspc/ | Symbolic links to tablespaces |
pg_twophase/ | The state file of a two-phase transaction |
pg_wal/ | WAL file |
pg_xact/ | Transaction commit status data |
postgresql.auto.conf | Storage use alter system Modified configuration |
postgresql.conf | The configuration file |
postmaster.opts | Record the command line options of the last time the server was started |
postmaster.pid | The server pid file |
边栏推荐
- 大咖云集|NextArch基金会云开发Meetup来啦!
- 阿里云中间件开源往事
- 张平安:加快云上数字创新,共建产业智慧生态
- Web开发小妙招:巧用ThreadLocal规避层层传值
- Zhang Ping'an: accelerate cloud digital innovation and jointly build an industrial smart ecosystem
- 最近小程序开发记录
- 微服务架构介绍
- [unique] what is the [chain storage structure]?
- 解密函数计算异步任务能力之「任务的状态及生命周期管理」
- Data connection mode in low code platform (Part 1)
猜你喜欢
随机推荐
leetcode:736. Lisp 语法解析【花里胡哨 + 栈 + 状态enumaotu + slots】
猿桌派第三季开播在即,打开出海浪潮下的开发者新视野
Zhang Ping'an: accelerate cloud digital innovation and jointly build an industrial smart ecosystem
Yyds dry goods inventory # solve the real problem of famous enterprises: maximum difference
Flir Blackfly S USB3 工业相机:计数器和定时器的使用方法
1500万员工轻松管理,云原生数据库GaussDB让HR办公更高效
CISP-PTE之命令注入篇
[paper reading | deep reading] dngr:deep neural networks for learning graph representations
云原生混部最后一道防线:节点水位线设计
3D laser slam: time synchronization of livox lidar hardware
红外相机:巨哥红外MAG32产品介绍
How do I dump SoapClient requests for debugging- How to dump SoapClient request for debug?
centos8安装mysql报错:The GPG keys listed for the “MySQL 8.0 Community Server“ repository are already ins
【LeetCode】Day97-移除链表元素
sql中批量删除数据---实体中的集合
MySQL execution process and sequence
Input and output of C language pointer to two-dimensional array
CISP-PTE实操练习讲解(二)
What to do when encountering slow SQL? (next)
Flir Blackfly S 工业相机:自动曝光配置及代码