什么是PostgreSQL

這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹什么是PostgreSQL,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

成都創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元秀英做網(wǎng)站,已為上家服務(wù),為秀英各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

1、什么是PostgreSQL?

PostgreSQL是一個(gè)功能強(qiáng)大的開源對(duì)象關(guān)系型數(shù)據(jù)庫系統(tǒng),它使用和擴(kuò)展了SQL語言,并結(jié)合了許多安全存儲(chǔ)和擴(kuò)展最復(fù)雜數(shù)據(jù)工作負(fù)載的功能。PostgreSQL的起源可以追溯到1986年,作為加州大學(xué)伯克利分校POSTGRES項(xiàng)目的一部分,并且在核心平臺(tái)上進(jìn)行了30多年的積極開發(fā)。

PostgresSQL憑借其經(jīng)過驗(yàn)證的架構(gòu),可靠性,數(shù)據(jù)完整性,強(qiáng)大的功能集,可擴(kuò)展性以及軟件背后的開源社區(qū)的奉獻(xiàn)精神贏得了良好的聲譽(yù),以始終如一地提供高性能和創(chuàng)新的解決方案。PostgreSQL在所有主要操作系統(tǒng)開始使用PostgreSQL從未如此簡(jiǎn)單。

2、為什么要使用PostgreSQL?

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

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

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ā)性,性能

    ·索引

    ·高級(jí)索引

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

    ·交互

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

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

    ·表分區(qū)

    ·Sql標(biāo)準(zhǔn)中定義的所有事物隔離級(jí)別,包括Serializable

    ·即時(shí)表達(dá)式匯編(JIT)

(4)可靠性,災(zāi)難恢復(fù)

    ·預(yù)寫日志(WAL)

    ·復(fù)制:異步,同步,邏輯

    ·時(shí)間點(diǎn)恢復(fù)(pitr),主動(dòng)備用

    ·表空間

(5)安全性

    ·身份驗(yàn)證:GSSAPI, SSPI, LDAP, SCRAM-SHA-256, 證書等

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

    ·列和行級(jí)安全性

(6)可擴(kuò)展性

    ·存儲(chǔ)的功能和程序

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

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

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

(7)國(guó)際化,文本搜索

    ·支持國(guó)際字符集,例如通過ICU校對(duì)

    ·全文檢索

對(duì)比MySQL:

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

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

(3)PG多年在GIS領(lǐng)域處于優(yōu)勢(shì)地位,因?yàn)樗胸S富的幾何類型,實(shí)際上不止幾何類型,PG中有大量的字典、數(shù)組、bitmap等數(shù)據(jù)類型,相比之下MaySQL就差很多,insagram就是因?yàn)镻G的空間數(shù)據(jù)庫擴(kuò)展POSTGIS遠(yuǎn)遠(yuǎn)強(qiáng)于MySQL的my spatial而采用PGSQL的。

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

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

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

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

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

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

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

關(guān)于什么是PostgreSQL就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

文章標(biāo)題:什么是PostgreSQL
本文網(wǎng)址:http://bm7419.com/article10/ijpddo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、小程序開發(fā)、App開發(fā)網(wǎng)站設(shè)計(jì)公司、網(wǎng)站收錄響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化