溫馨提示×

溫馨提示×

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

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

關(guān)于postgresql數(shù)據(jù)庫是什么的詳細介紹

發(fā)布時間:2020-08-01 11:37:27 來源:億速云 閱讀:637 作者:清晨 欄目:編程語言

小編給大家分享一下關(guān)于postgresql數(shù)據(jù)庫是什么的詳細介紹,相信大部分人都還不怎么了解,因此分享這篇文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!

1、什么是PostgreSql:

PostgreSQL 是一個功能強大的開源對象關(guān)系數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。 用于安全地存儲數(shù)據(jù); 支持最佳做法,并允許在處理請求時檢索它們。

PostgreSQL (也稱為 Post-gress-Q-L )由 PostgreSQL 全球開發(fā)集團(全球志愿者團隊)開發(fā)。 它不受任何公司或其他私人實體控制。 它是開源的,其源代碼是免費提供的。

PostgreSQL 是跨平臺的,可以在許多操作系統(tǒng)上運行,如 Linux,F(xiàn)reeBSD,OS X,Solaris 和 Microsoft Windows 等。

2、為什么要使用PostgreSQL

PostgreSql提供了許多功能,旨在幫助開發(fā)人員構(gòu)建應(yīng)用程序,管理員保護數(shù)據(jù)完整性并且構(gòu)建容錯環(huán)境,并幫助你管理數(shù)據(jù),無論數(shù)據(jù)集的大小。除了免費和開源之外,Postgre SQL還具有高度的可擴展性。例如,你可以定義自己的數(shù)據(jù)類型,構(gòu)建自定義SQL函數(shù)(此sql函數(shù)在另一篇帖子討論:點此跳轉(zhuǎn)),甚至可以編寫來自不同編程語言的代碼,而不需要重新編譯數(shù)據(jù)庫。

PostgreSql試圖符合SQL標準,在這種標準中,這種一致性不會與傳統(tǒng)特性相矛盾,或者可能導致糟糕的架構(gòu)決策。支持SQL標準所需的許多功能,但是有時候語法或者功能略有不同。隨著時間的推移,可以預期進一步向一致性邁進。從2018年10月發(fā)布的11版本開始,PostgreSQL符合SQL:2011核心一致性的179個強制性功能中的至少160個,在此之前,沒有任何關(guān)系型數(shù)據(jù)庫符合此標準的完全符合。

3、下面是PostgreSQL中的各種功能介紹:

(1)數(shù)據(jù)類型:

    ·基本類型:Integer, Numeric, String, Boolean

    ·結(jié)構(gòu)類型:Date/Time, Array, Range, UUID

    ·文檔類型:JSON/JSONB, XML, Key-value(Hstore)

    ·幾何類型:Point, Line, Circle, Polygon

    ·自定義類型:Composite, Custom Types

(2)數(shù)據(jù)的完整性

    ·唯一性,不為空

    ·主鍵

    ·外鍵

    ·排除約束

    ·顯式鎖定,咨詢鎖定

(3)并發(fā)性,性能

    ·索引:

    ·高級索引

    ·復雜的查詢計劃期/優(yōu)化器

    ·交互

    ·多版本并發(fā)控制(MVCC)

    ·讀取查詢的并行化和構(gòu)建B樹索引

    ·表分區(qū)

    ·Sql標準中定義的所有事物隔離級別,包括Serializable

    ·即時表達式匯編(JIT)

(4)可靠性,災難恢復

    ·預寫日志(WAL)

    ·復制:異步,同步,邏輯

    ·時間點恢復(pitr),主動備用

    ·表空間

(5)安全性

    ·身份驗證:GSSAPI, SSPI, LDAP, SCRAM-SHA-256, 證書等

    ·強大的訪問控制系統(tǒng)

    ·列和行級安全性

(6)可擴展性

    ·存儲的功能和程序

    ·程序語言:PL/PGSQL, Perl, Python (more)

    ·外部數(shù)據(jù)包裝器:使用標準SQL接口連接到其他數(shù)據(jù)庫或流

    ·許多提供附加功能的擴展,包括PostGIS

(7)國際化,文本搜索

    ·支持國際字符集,例如通過ICU校對

    ·全文檢索

4、對比Mysql

PostgreSQL的穩(wěn)定性極強,Innodb等引擎在崩潰、斷電之類的災難場景下抗打擊能力有了長足的進步,然而很多Mysql用戶都遇到過Server級的數(shù)據(jù)庫丟失的場景---Mysql系統(tǒng)庫是MyISAM的,相較而言,PG數(shù)據(jù)庫在這方面要好一些。

任何系統(tǒng)都有他的性能極限,在高并發(fā)讀寫,負載逼近極限下,PG的性能指標仍然可以維持雙曲線甚至對數(shù)曲線,到頂峰之后不再下降,而MySQL明細出現(xiàn)一個波峰后下滑。

PG多年在GIS領(lǐng)域處于優(yōu)勢地位,因為它有豐富的幾何類型,實際上不止幾何類型,PG中有大量的字典、數(shù)組、bitmap等數(shù)據(jù)類型,相比之下MaySQL就差很多,insagram就是因為PG的空間數(shù)據(jù)庫擴展POSTGIS遠遠強于MySQL的my spatial而采用PGSQL的。

PG的“無鎖定”特性非常突出,甚至包括vacuum這樣的整理數(shù)據(jù)空間的操作,這個和PGSSQL的MVCC實現(xiàn)有關(guān)系。

PG的可以使用函數(shù)和條件索引,這使得PG數(shù)據(jù)庫的調(diào)優(yōu)非常靈活,mysql就沒有這個功能,條件索引在web應(yīng)用中很重要。

PG有極其強悍的SQL編程能力,有豐富的統(tǒng)計函數(shù)和統(tǒng)計語法支持,比如分析函數(shù)(Oracle的叫法,PG里面叫Window函數(shù)),還可以用多種語言來寫存儲過程,對于R的支持也很好。這一點上MySQL就差的很遠,很多分析功能那個都沒有,騰訊內(nèi)部數(shù)據(jù)存儲主要是Mysql,但是主要的數(shù)據(jù)分析就是Hadoop+PGsql。

PG的有很多中集群架構(gòu)可以選擇,plproxy可以支持語句級的鏡像或者分片,slony可以進行字段級的同步設(shè)置,standby可以構(gòu)建WAL文件級或者流式的讀寫分離集群,同步頻率和集群策略調(diào)整方便,操作非常簡單。

一般關(guān)系型數(shù)據(jù)庫的字符串有限定長度8k左右,無限長Text類型的功能受限,只能作為外部大數(shù)據(jù)訪問。而PG的TEXT類型可以直接方法,SQL語法內(nèi)置正則表達式,可以索引,還可以全文檢索,或使用xml xpath。用PG的話,文檔數(shù)據(jù)庫就可以省略了

對于web應(yīng)用來說,復制的特性很重要,Mysql到現(xiàn)在也是異步復制,pgsql可以做到同步,異步,半同步復制。還有mysql的同步是基于binlog復制,類似oracle golden gate, 是基于stream的復制,做到同步很困難,這種方式更加適合異地復制,pgsql的復制基于wal,可以做到同步復制。同時pgsql還提供stream復制。

Pgsql對于numa架構(gòu)的支持要比mysql強一些,比mysql對于讀的性能要好些,pgsql提交可以完全異步,而mysql的內(nèi)存表不夠?qū)嵱茫ū礞i原因)

以上是關(guān)于postgresql數(shù)據(jù)庫是什么的詳細介紹的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

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

AI