W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
PostgreSQL以一種簡(jiǎn)單的“一用戶(hù)一進(jìn)程”的客戶(hù)端/服務(wù)器模型實(shí)現(xiàn)。在該模型中,一個(gè)客戶(hù)端進(jìn)程僅連接到一個(gè)服務(wù)器進(jìn)程。由于我們無(wú)法預(yù)先知道會(huì)有多少連接被建立,我們必須使用一個(gè)主進(jìn)程在每次連接請(qǐng)求時(shí)生產(chǎn)一個(gè)新的服務(wù)器進(jìn)程。該主進(jìn)程被稱(chēng)為
postgres
,它在一個(gè)特定的TCP/IP端口監(jiān)聽(tīng)進(jìn)入的連接。當(dāng)一個(gè)連接請(qǐng)求被監(jiān)測(cè)到時(shí),postgres
會(huì)產(chǎn)生一個(gè)新的服務(wù)器進(jìn)程。服務(wù)器作業(yè)之間通過(guò)信號(hào)和共享內(nèi)存通信,以保證并發(fā)數(shù)據(jù)訪問(wèn)時(shí)的數(shù)據(jù)完整性。
客戶(hù)端進(jìn)程可以是任何符合PostgreSQL協(xié)議(見(jiàn)第 52 章)的程序。很多客戶(hù)端基于C語(yǔ)言庫(kù)libpq,但也有一些該協(xié)議的獨(dú)立實(shí)現(xiàn)存在,例如Java的JDBC驅(qū)動(dòng)。
一旦一個(gè)連接被建立,客戶(hù)端進(jìn)程就能發(fā)送一個(gè)查詢(xún)給后端(服務(wù)器)。查詢(xún)被以純文本傳送,即在前端(客戶(hù)端)不做任何分析。服務(wù)器會(huì)分析查詢(xún),創(chuàng)建一個(gè)執(zhí)行計(jì)劃,然后執(zhí)行之并通過(guò)已建立的連接向客戶(hù)端返回檢索到的行。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: