Postgresql數(shù)據(jù)庫(kù)軟件是一款非常專業(yè)的數(shù)據(jù)庫(kù)管理軟件。輕松管理自己的電腦數(shù)據(jù)庫(kù)。支持大部分SQL標(biāo)準(zhǔn),可用多種方法擴(kuò)展,并提供許多其他現(xiàn)代特性,如復(fù)雜查詢、觸發(fā)器、視圖、外鍵等。歡迎有需要的朋友前來下載使用。
軟件特色
1、存儲(chǔ)設(shè)備管理子模塊:
數(shù)據(jù)庫(kù)記錄是存儲(chǔ)在存儲(chǔ)介質(zhì)上的,存儲(chǔ)設(shè)備管理子模塊將屏蔽不同物理存儲(chǔ)設(shè)備(塊設(shè)備,流設(shè)備)接口函數(shù)的差異,向上層緩沖區(qū)管理子模塊提供統(tǒng)一的訪問接口函數(shù)。
2、緩沖區(qū)管理子模塊:
管理postgresql的緩沖區(qū),包括本地緩沖區(qū)和共享緩沖區(qū)。
3、頁(yè)面管理子模塊:
對(duì)postgresql緩沖區(qū)頁(yè)面的組織結(jié)構(gòu)進(jìn)行定義以及提供頁(yè)面操作的方法。
4、文件管理子模塊:
一般的操作系統(tǒng)對(duì)一個(gè)進(jìn)程允許打開的文件數(shù)是有限制的,而postgresql服務(wù)器有些時(shí)候需要打開的文件數(shù)是很多的,因此postgresql文件管理子模塊自身為了突破這個(gè)瓶頸,封裝了文件的讀寫操作,在這里建立了一個(gè)lru鏈表,通過一定的替換算法來對(duì)打開的文件進(jìn)行管理,使得可以打開的文件數(shù)目不受操作系統(tǒng)平臺(tái)的限制。
亮點(diǎn)優(yōu)勢(shì)函數(shù):
通過函數(shù),可以在數(shù)據(jù)庫(kù)服務(wù)器端執(zhí)行指令程序。
觸發(fā)器:
觸發(fā)器是由sql語(yǔ)句查詢所觸發(fā)的事件。如:一個(gè)insert語(yǔ)句可能觸發(fā)一個(gè)檢查數(shù)據(jù)完整性的觸發(fā)器。觸發(fā)器通常由insert或update語(yǔ)句觸發(fā)。 多版本并發(fā)控制:postgresql使用多版本并發(fā)控制(mvcc,multiversion concurrency control)系統(tǒng)進(jìn)行并發(fā)控制,該系統(tǒng)向每個(gè)用戶提供了一個(gè)數(shù)據(jù)庫(kù)的“快照”,用戶在事務(wù)內(nèi)所作的每個(gè)修改,對(duì)于其他的用戶都不可見,直到該事務(wù)成功提交。
索引:
用戶可以自定義索引方法,或使用內(nèi)置的b樹,哈希表與gist索引。
規(guī)則:
規(guī)則(rule)允許一個(gè)查詢能被重寫,通常用來實(shí)現(xiàn)對(duì)視圖(view)的操作,如插入(insert)、更新(update)、刪除(delete)。
全文檢索:通過 tsearch2 或 openfts,8.3版本中內(nèi)嵌 tsearch2。
nosql:
json,jsonb,xml,hstore 原生支持,至 nosql 數(shù)據(jù)庫(kù)的外部數(shù)據(jù)包裝器。
數(shù)據(jù)類型:
包括文本、任意精度的數(shù)值數(shù)組、json 數(shù)據(jù)、枚舉類型、xml 數(shù)據(jù)等。
數(shù)據(jù)倉(cāng)庫(kù):
能平滑遷移至同屬 postgresql 生態(tài)的 greenplum,deepgreen,hawk等,使用 fdw 進(jìn)行etl。
主要功能
1)用戶定義函數(shù)的擴(kuò)展方面,postgresql可以更方便地使用udf(用戶定義函數(shù))進(jìn)行擴(kuò)展。
2)操作系統(tǒng)支持windows、linux、unix、mac os x、bsd。
3)維護(hù)者是postgresql global development group,首次發(fā)布于1989年6月。
4)表和視圖方面,postgresql支持臨時(shí)表,而物化視圖,可以使用pl/pgsql、pl/perl、pl/python或其他過程語(yǔ)言的存儲(chǔ)過程和觸發(fā)器模擬。
5)從基本功能上來看,支持acid、關(guān)聯(lián)完整性、數(shù)據(jù)庫(kù)事務(wù)、unicode多國(guó)語(yǔ)言。
6)其他對(duì)象上,支持?jǐn)?shù)據(jù)域,支持存儲(chǔ)過程、觸發(fā)器、函數(shù)、外部調(diào)用、游標(biāo)7)數(shù)據(jù)表分區(qū)方面,支持4種分區(qū),即范圍、哈希、混合、列表。
8)從事務(wù)的支持度上看,對(duì)事務(wù)的支持與mysql相比,經(jīng)歷了更為徹底的測(cè)試。
9)索引方面,全面支持r-/r+tree索引、哈希索引、反向索引、部分索引、expression 索引、gist、gin(用來加速全文檢索),從8.3版本開始支持位圖索引。
10)從存儲(chǔ)過程上看,postgresql支持存儲(chǔ)過程。因?yàn)榇鎯?chǔ)過程的存在也避免了在網(wǎng)絡(luò)上大量原始的sql語(yǔ)句的傳輸,這樣的優(yōu)勢(shì)是顯而易見的。
11)my isam表處理方式方面,mysql對(duì)于無事務(wù)的myisam表,采用表鎖定,1個(gè)長(zhǎng)時(shí)間運(yùn)行的查詢很可能會(huì)阻礙對(duì)表的更新,而postgresql不存在這樣的問題。
用戶測(cè)評(píng)postgresql提供了兩種可選模式。一種模式保證如果操作系統(tǒng)或硬件崩潰,則數(shù)據(jù)將保存到磁盤中,這種模式通常比大多數(shù)商業(yè)數(shù)據(jù)庫(kù)要慢,這是因?yàn)樗褂昧怂⑿拢ɑ蛲剑┓椒ǎ涣硪环N模式與第一種不同,它不提供數(shù)據(jù)保證,但它通常比商業(yè)數(shù)據(jù)庫(kù)運(yùn)行得快。遺憾的是,還沒有一種折中的模式:既提供一定程度的數(shù)據(jù)安全性,又有較快的執(zhí)行速度。今后的版本將會(huì)提供這種模式。
更新日志
保持了一貫以來的傳統(tǒng),即在各種規(guī)模負(fù)載下都可以提供較理想的性能表現(xiàn)。這個(gè)版本尤其是在有大量連接的場(chǎng)景下(不論這些連接是活動(dòng)或是休閑狀態(tài)),大幅提高了事務(wù)的吞吐量。
gist索引在創(chuàng)建的過程中可以預(yù)排序,對(duì)快速創(chuàng)建索引或是減小索引大小都有好處。
在減少b樹索引負(fù)載方面有了提高,包括對(duì)頻繁更新的表索引減少了表膨脹的情況。
sp-gist索引 現(xiàn)在支持包含索引,讓用戶可以通過include選項(xiàng)來添加非搜索列至索引中。