【趙渝強老師】PostgreSQL的資料檔案

赵渝强老师發表於2024-12-03

PostgreSQL資料庫的物理儲存結構主要是指硬碟上儲存的檔案,包括:資料檔案、日誌檔案、引數檔案、控制檔案、WAL預寫日誌檔案等等。下面重點討論一下PostgreSQL的資料檔案。

影片講解如下:
https://www.bilibili.com/video/BV1gsWSeVEk4/?aid=113011259869...

顧名思義,資料檔案用於儲存資料,檔名以oid命名。對於超出1G的資料檔案,PostgreSQL會自動將其拆分為多個檔案來儲存,而拆分的檔名將由pg_class中的relfilenode欄位來決定。

透過下面的步驟可以確定表所對應的資料檔案。

(1)檢視資料庫的oid。

postgres=# select oid,datname from pg_database;

# 輸出的資訊如下:  
  oid  |  datname  
-------+-----------
 13580 | postgres
     1 | template1
 13579 | template0
(3 rows)

# 注意:13580是資料庫postgres的OID。

(2)查詢前面建立的testtable1表的OID。

postgres=# select oid,relname,relkind,relfilenode from pg_class
postgres-# where relname ='testtable1';

# 輸出的資訊如下:  
  oid  |  relname   | relkind | relfilenode 
-------+------------+---------+-------------
 16395 | testtable1 | r       |       16395
(1 row)

# 注意:16395是表testtable1的OID。

(3)檢視錶空間mydemotbs對應的目錄,如下圖所示。
image.png

相關文章