PostgreSQL 架構(gòu)基礎(chǔ)

2021-08-16 15:23 更新

在我們繼續(xù)之前,你應(yīng)該先了解PostgreSQL的系統(tǒng)架構(gòu)。 對(duì)PostgreSQL的部件之間如何相互作用的理解將會(huì)使本節(jié)更易理解。

在數(shù)據(jù)庫(kù)術(shù)語里,PostgreSQL使用一種客戶端/服務(wù)器的模型。一次PostgreSQL會(huì)話由下列相關(guān)的進(jìn)程(程序)組成:

  • 一個(gè)服務(wù)器進(jìn)程,它管理數(shù)據(jù)庫(kù)文件、接受來自客戶端應(yīng)用與數(shù)據(jù)庫(kù)的聯(lián)接并且代表客戶端在數(shù)據(jù)庫(kù)上執(zhí)行操作。 該數(shù)據(jù)庫(kù)服務(wù)器程序叫做postgres。

  • 那些需要執(zhí)行數(shù)據(jù)庫(kù)操作的用戶的客戶端(前端)應(yīng)用。 客戶端應(yīng)用可能本身就是多種多樣的:可以是一個(gè)面向文本的工具, 也可以是一個(gè)圖形界面的應(yīng)用,或者是一個(gè)通過訪問數(shù)據(jù)庫(kù)來顯示網(wǎng)頁(yè)的網(wǎng)頁(yè)服務(wù)器,或者是一個(gè)特制的數(shù)據(jù)庫(kù)管理工具。 一些客戶端應(yīng)用是和 PostgreSQL發(fā)布一起提供的,但絕大部分是用戶開發(fā)的。

和典型的客戶端/服務(wù)器應(yīng)用(C/S應(yīng)用)一樣,這些客戶端和服務(wù)器可以在不同的主機(jī)上。 這時(shí)它們通過 TCP/IP 網(wǎng)絡(luò)聯(lián)接通訊。 你應(yīng)該記住的是,在客戶機(jī)上可以訪問的文件未必能夠在數(shù)據(jù)庫(kù)服務(wù)器機(jī)器上訪問(或者只能用不同的文件名進(jìn)行訪問)。

PostgreSQL服務(wù)器可以處理來自客戶端的多個(gè)并發(fā)請(qǐng)求。 因此,它為每個(gè)連接啟動(dòng)(forks)一個(gè)新的進(jìn)程。 從這個(gè)時(shí)候開始,客戶端和新服務(wù)器進(jìn)程就不再經(jīng)過最初的 postgres進(jìn)程的干涉進(jìn)行通訊。 因此,主服務(wù)器進(jìn)程總是在運(yùn)行并等待著客戶端聯(lián)接, 而客戶端和相關(guān)聯(lián)的服務(wù)器進(jìn)程則是起起停停(當(dāng)然,這些對(duì)用戶是透明的。我們介紹這些主要是為了內(nèi)容的完整性)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)