当前位置:网站首页>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 |
边栏推荐
- 2022 system integration project management engineer examination knowledge point: Mobile Internet
- 企业中台建设新路径——低代码平台
- 最近小程序开发记录
- Vingt - trois mille feuilles? "Yang mou" derrière l'explosion de la consommation végétale
- Centos8 install MySQL 8.0 using yum x
- FLIR blackfly s industrial camera: synchronous shooting of multiple cameras through external trigger
- leetcode:5. 最长回文子串【dp + 抓着超时的尾巴】
- [unique] what is the [chain storage structure]?
- centos8安装mysql报错:The GPG keys listed for the “MySQL 8.0 Community Server“ repository are already ins
- ROS learning (XX) robot slam function package -- installation and testing of rgbdslam
猜你喜欢
Word wrap when flex exceeds width
go swagger使用
猫猫回收站
ROS learning (24) plugin
Alibaba cloud middleware open source past
ROS learning (XIX) robot slam function package cartographer
Flir Blackfly S USB3 工业相机:白平衡设置方法
建议收藏!!Flutter状态管理插件哪家强?请看岛上码农的排行榜!
The GPG keys listed for the "MySQL 8.0 community server" repository are already ins
Introduction to FLIR blackfly s industrial camera
随机推荐
企业中台建设新路径——低代码平台
The GPG keys listed for the "MySQL 8.0 community server" repository are already ins
Processing image files uploaded by streamlit Library
【论文阅读|深读】RolNE: Improving the Quality of Network Embedding with Structural Role Proximity
FLIR blackfly s industrial camera: explanation and configuration of color correction and code setting method
【论文阅读|深读】 GraphSAGE:Inductive Representation Learning on Large Graphs
Recent applet development records
The last line of defense of cloud primary mixing department: node waterline design
Lumion 11.0 software installation package download and installation tutorial
阿里云中间件开源往事
张平安:加快云上数字创新,共建产业智慧生态
PostgreSQL图形化界面工具之pgAdmin4
String or binary data will be truncated
真实项目,用微信小程序开门编码实现(完结)
Centos8 install MySQL 8.0 using yum x
Blackfly s usb3 industrial camera: buffer processing
Errors made in the development of merging the quantity of data in the set according to attributes
Data connection mode in low code platform (Part 1)
解密函数计算异步任务能力之「任务的状态及生命周期管理」
Tips for web development: skillfully use ThreadLocal to avoid layer by layer value transmission