版本:11
在開始使用之前,你需要瞭解基本的PostgreSQL系統架構。認識PostgreSQL如何回應操作,有助於讓你更清楚瞭解以下的說明。
以資料庫的述語來說,PostgreSQL採用了主從式架構(client/server)。PostgreSQL會在進行下列操作時保持連線:
伺服器的執行緒,負責管理資料庫的檔案、受理用戶端的連線要求、執行相對應的資料庫動作。這樣的資料庫伺服端程式稱之為「postgres」。
用戶端的程式用來發起資料庫操作的行為,其設計的形態很廣泛:可能是文字介面的工具、圖型介面的程式、將資料庫內容顯示成網頁的網際網路伺服器、甚或是專用的資料庫管理工具。有一些用戶端程式是由PostgreSQL官方所提供,大部份由第三方的其他使用者所開發。
如同一般的主從式架構,用戶端與伺服端可以是兩台不同的主機,而他們透過TCP/IP的網路協定溝通。你應該將這個觀念謹記在心,因為某些在用戶端可以被存取的檔案,在伺服端可能就無法存取(或使用不同的檔案名稱)。
PostgreSQL伺服器可以管理來自多個用戶端的同步連線。為了達到這樣的功能,它會自我複製(fork)成新的執行緒,一對一地處理每一個連線。這個部份進一步來說,用戶端和新的伺服器執行緒之間的溝通,並不需要原始的postgres執行緒介入。也就是說,主要的資料庫服務執行緒會持續等待其他用戶端的連線,協助安排好其與伺服端執行緒的配對之後便完全交接,再回到等待的狀態。(當然,使用者完全不會察覺這些行為,在此說明僅僅是為了整體性的概念描繪)