溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

pg源碼src/backend/目錄下的結(jié)構(gòu)是怎樣的

發(fā)布時間:2021-12-24 16:00:31 來源:億速云 閱讀:153 作者:柒染 欄目:數(shù)據(jù)庫

pg源碼src/backend/目錄下的結(jié)構(gòu)是怎樣的,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1.         src\backend\acess:很重要的一個目錄,數(shù)據(jù)訪問層,存放了和索引相關(guān)以及事務(wù)處理相關(guān)的代碼。如“圖3-事務(wù)處理和索引相關(guān)結(jié)構(gòu)圖”(http://blog.163.com/li_hx/blog/static/183991413201152884321219/ )。本層之下,是數(shù)據(jù)緩沖區(qū),再下層,是真正的數(shù)據(jù)存儲層。

2.         src\backend\bootstrap:初始化數(shù)據(jù)庫時要使用的代碼。和src\bin\initdb下的initdb工具緊密相關(guān)。

3.         src\backend\catalog:PG提供的針對系統(tǒng)表的操作代碼。系統(tǒng)表定義在incl?\catalog中。

4.         src\backend\commands:SQL命令被解析后執(zhí)行具體命令時對應(yīng)的操作代碼。

5.         src\backend\executor:SQL命令被解析后得出語法分析樹和查詢計劃,從形式上看,他們都是一顆多叉的樹,每個子樹由若干子樹和節(jié)點(node)組成。不同節(jié)點的執(zhí)行方式在經(jīng)系統(tǒng)判斷后各不相同,如是執(zhí)行順序掃描還是索引掃描還是嵌套循環(huán)等等。與commands目錄中的代碼聯(lián)合完成查詢處理功能。

6.         src\backend\lib:字符串處理和鏈表處理輔助函數(shù)。

7.         src\backend\libpq:同身份認(rèn)證或口令識別相關(guān)代碼,以進(jìn)行安全的網(wǎng)絡(luò)通訊。如ssl,md5等等。

8.         src\backend\main:PG的main函數(shù)所在。PG啟動入口。

9.         src\backend\nodes:語法分析或查詢計劃上的節(jié)點的處理代碼,如必要時對節(jié)點進(jìn)行復(fù)制等。

10.     src\backend\optimizer:實現(xiàn)查詢優(yōu)化的代碼。

11.     src\backend\parser:對SQL語句進(jìn)行解析的代碼。注意gram.y文件。

12.     src\backen\po:實現(xiàn)國際化(i18n)功能的一部分。把一些數(shù)據(jù)庫的提示信息國際化。

13.     src\backend\port:屏蔽一些不同操作系統(tǒng)在一些實現(xiàn)上的差別。如windows上的socket、darwin系統(tǒng)上對system函數(shù)的支持、sunos4系統(tǒng)對于float類型的支持等。

14.     src\backend\postmaster:PG的主要進(jìn)程。如主服務(wù)進(jìn)程postmaster,歸檔進(jìn)程pgarch等。

15.     src\backend\regex:對正則表達(dá)式的處理代碼。

16.     src\backend\rewrite:PG的查詢重寫系統(tǒng)代碼。

17.     src\backend\snowball:支持全文檢索的代碼。

18.     src\backend\storage:很重要的一個目錄。有關(guān)物理存儲系統(tǒng)相關(guān)代碼。主要包括存儲管理器(可方便提供多種存儲方式的切換)、緩沖區(qū)管理、文件管理、文件空間管理、大對象管理、鎖管理、使用消息隊列進(jìn)行cache同步等。如“圖5-存儲系統(tǒng)代碼結(jié)構(gòu)圖”。

19.     src\backend\tcop:真正的處理用戶SQL的服務(wù)進(jìn)程?—postgres。

20.     src\backend\tserach:全文檢索相關(guān)代碼。

21.     src\backend\utils:輔助功能代碼。如adt目錄下對于各種數(shù)據(jù)類型的處理代碼;cache目錄中提供一些緩存的支持,如查詢計劃緩存;error目錄中提供PG系統(tǒng)的錯誤處理機(jī)制;fmgr目錄有PG提供的函數(shù)管理機(jī)制;mb目錄中有對國際化的支持(多字節(jié)字符);misc目錄提供對于系統(tǒng)參數(shù)的處理機(jī)制;mmgr目錄提供PG對于內(nèi)存管理的代碼等等

關(guān)于pg源碼src/backend/目錄下的結(jié)構(gòu)是怎樣的問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI