pg儲存層的實現,主要分為三部分:儲存層和資料庫系統的關係,參加下表(行數從上到下,是使用者訪問資料庫的過程和資料庫管理系統的各模組間的關係層次):
層次
層次名稱
**
說明
使用者介面+使用者命令
psql/jdbc/odbc…
sql互動工具等
資料訪問層
資料訪問層
src\backend\access
如何識別、讀寫資料
資料緩衝區層
資料緩衝區
src/backend/storage/buffer/bufmgr.c
快取資料使得邏輯io和物理io分離,有效管理了物理io操作
資料儲存層
儲存訪問介面層
src/backend/storage/smgr/smgr.c
src/backend/storage/smgr/md.c
使得儲存可以被作為外掛程式引入成為可能
虛擬檔案管理層
src/backend/storage/file/fd.c
遮蔽了作業系統對於程序可開啟的檔案控制代碼數的限制,對外存檔案有效管理
物理io層
os的lib庫中的函式,如windows下的「_commit」,linux下的posix_fadvise等,還有通常共有的「read和write」等函式
呼叫作業系統層的io操作
PostgreSQL的資料儲存 八 資料儲存
在作業系統層面,資料儲存,只是一些二進位制資訊,這個層次,是不知道檔案內容的含義的。檔案的邏輯含義,取決於應用層面。資料庫系統的檔案組織,也如此。在外存儲存,以二進位制格式存放,讀寫檔案,以塊 8k 為單位,讀入的資料,存放與資料緩衝區,所以,資料的邏輯含義,始於資料緩衝區。在bufpage.h檔案...
postgresql函式儲存過程實現資料批量插入
建立函式 create function insert page text,char,char,char,char,text,text,text,text,text,text,text,text,text,text,text,text,text,text,real,real,text,text,te...
PostgreSQL 儲存json,jsonb型別
postgresql 字串隱式轉換json指令碼 隱式將varchar轉換為json create or replace function json in varchar varchar returns json as select json in 1 cstring language sql im...