当前位置:网站首页>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 |
边栏推荐
- Command injection of cisp-pte
- What to do when encountering slow SQL? (next)
- The GPG keys listed for the "MySQL 8.0 community server" repository are already ins
- 【Unity】升级版·Excel数据解析,自动创建对应C#类,自动创建ScriptableObject生成类,自动序列化Asset文件
- 【LeetCode】Day97-移除链表元素
- [paper reading | deep reading] rolne: improving the quality of network embedding with structural role proximity
- 强化学习如何用于医学影像?埃默里大学最新《强化学习医学影像分析》综述,阐述最新RL医学影像分析概念、应用、挑战与未来方向
- Schedulx v1.4.0 and SaaS versions are released, and you can experience the advanced functions of cost reduction and efficiency increase for free!
- Treadpoolconfig thread pool configuration in real projects
- Flir Blackfly S 工业相机:自动曝光配置及代码
猜你喜欢

Several classes and functions that must be clarified when using Ceres to slam

CISP-PTE之命令注入篇

STM32F4---PWM输出

15million employees are easy to manage, and the cloud native database gaussdb makes HR office more efficient

Robot team learning method to achieve 8.8 times human return

将截断字符串或二进制数据

Time synchronization of livox lidar hardware -- PPS method

Tiflash source code reading (IV) design and implementation analysis of tiflash DDL module

FLIR blackfly s industrial camera: configure multiple cameras for synchronous shooting

【论文阅读|深读】 GraphSAGE:Inductive Representation Learning on Large Graphs
随机推荐
真实项目,用微信小程序开门编码实现(完结)
猫猫回收站
Web开发小妙招:巧用ThreadLocal规避层层传值
企业中台建设新路径——低代码平台
New generation cloud native message queue (I)
一片叶子两三万?植物消费爆火背后的“阳谋”
Introduction to RC oscillator and crystal oscillator
Recommended collection!! Which is the best flutter status management plug-in? Please look at the ranking list of yard farmers on the island!
FLIR blackfly s usb3 industrial camera: white balance setting method
Seconds understand the delay and timing function of wechat applet
postgresql 之 数据目录内部结构 简介
CISP-PTE之命令注入篇
@Before, @after, @around, @afterreturning execution sequence
1500万员工轻松管理,云原生数据库GaussDB让HR办公更高效
Alibaba cloud middleware open source past
[leetcode] day97 remove linked list elements
pgpool-II和pgpoolAdmin的使用
Analyze "C language" [advanced] paid knowledge [II]
Time synchronization of livox lidar hardware -- PPS method
MetaForce原力元宇宙开发搭建丨佛萨奇2.0系统开发