当前位置:网站首页>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 |
边栏推荐
- 组合导航:中海达iNAV2产品描述及接口描述
- Redis configuration class redisconfig
- ROS learning (XIX) robot slam function package cartographer
- MySQL execution process and sequence
- Flir Blackfly S USB3 工业相机:白平衡设置方法
- FLIR blackfly s industrial camera: explanation and configuration of color correction and code setting method
- Blackfly s usb3 industrial camera: buffer processing
- freeswitch拨打分机号源代码跟踪
- BigDecimal 的正确使用方式
- Word wrap when flex exceeds width
猜你喜欢

ROS learning (XIX) robot slam function package cartographer
![[unique] what is the [chain storage structure]?](/img/cd/be18c65b9d7faccc3c9b18e3b2ce8e.png)
[unique] what is the [chain storage structure]?

Decryption function calculates "task state and lifecycle management" of asynchronous task capability

Lumion 11.0软件安装包下载及安装教程

Dall-E Mini的Mega版本模型发布,已开放下载

Analyze "C language" [advanced] paid knowledge [II]

Jacob Steinhardt, assistant professor of UC Berkeley, predicts AI benchmark performance: AI has made faster progress in fields such as mathematics than expected, but the progress of robustness benchma

ROS learning (21) robot slam function package -- installation and testing of orbslam

Big guys gather | nextarch foundation cloud development meetup is coming!

The last line of defense of cloud primary mixing department: node waterline design
随机推荐
Introduction to microservice architecture
使用Ceres进行slam必须要弄清楚的几个类和函数
【论文阅读|深读】ANRL: Attributed Network Representation Learning via Deep Neural Networks
FLIR blackfly s usb3 industrial camera: how to use counters and timers
Introduction to FLIR blackfly s industrial camera
ROS learning (26) dynamic parameter configuration
The foreground downloads network pictures without background processing
Flir Blackfly S 工业相机:通过外部触发实现多摄像头同步拍摄
Redis tool class redisutil (tool class III)
postgresql之整体查询大致过程
ROS learning (25) rviz plugin
建议收藏!!Flutter状态管理插件哪家强?请看岛上码农的排行榜!
Halcon实例转OpenCvSharp(C# OpenCV)实现--瓶口缺陷检测(附源码)
Metaforce force meta universe development and construction - fossage 2.0 system development
String or binary data will be truncated
CISP-PTE实操练习讲解(二)
Blackfly S USB3工业相机:缓冲区处理
Input and output of C language pointer to two-dimensional array
Big guys gather | nextarch foundation cloud development meetup is coming!
Flir Blackfly S 工业相机 介绍