postgresql 不是nosql 數(shù)據(jù)庫(kù)是sql like的面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫(kù),運(yùn)用的sql查詢語(yǔ)言支持基本所有sql99標(biāo)準(zhǔn)!
創(chuàng)新互聯(lián)成立與2013年,先為新林等服務(wù)建站,新林等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為新林企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
1)數(shù)據(jù)加載
從服務(wù)端資源消耗的角度看,是MongoDB的性能是PostgreSQL的2倍。但是如果數(shù)據(jù)加載不能很好的并發(fā)展開(kāi),讓mongoimport成為了瓶頸,那應(yīng)該算打平。
另外,EnterpriseDB的數(shù)據(jù)加載的測(cè)試結(jié)果和我的結(jié)果差異比較大,可能是因?yàn)镋nterpriseDB的測(cè)試中,數(shù)據(jù)量超過(guò)了系統(tǒng)內(nèi)存量,IO對(duì)測(cè)試結(jié)果的影響開(kāi)始顯現(xiàn)。
2)數(shù)據(jù)插入
從服務(wù)端資源消耗的角度看,兩者其實(shí)相差不大。EnterpriseDB的測(cè)試結(jié)果被mongo客戶端的性能瓶頸綁架了。
3)數(shù)據(jù)查詢
對(duì)無(wú)匹配數(shù)據(jù)(或少量匹配數(shù)據(jù))的索引查詢,PostgreSQL的性能是MongoDB的4倍(這一點(diǎn)也有點(diǎn)令人不解,同樣是走索引的單點(diǎn)查詢,為什么差距就這么大呢?)。
雖然EnterpriseDB的測(cè)試結(jié)果也表明PostgreSQL的性能是MongoDB 4倍左右,但EnterpriseDB的測(cè)試方法是有問(wèn)題的。
4)數(shù)據(jù)大小
MongoDB的數(shù)據(jù)大小大約是PostgreSQL的3倍,這和EnterpriseDB的測(cè)試結(jié)果是一致的。
PostgreSQL在NoSQL方面的表現(xiàn)確實(shí)搶眼。PostgreSQL不僅是SQL+NoSQL+ACID的完美組合,性能還比MongoDB技高一籌(分布式集群上MongoDB更有優(yōu)勢(shì))。
常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品有Oracle、SQL Server、Sybase、DB2、Access等。 1.Oracle
Oracle是1983年推出的世界上第一個(gè)開(kāi)放式商品化關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。它采用標(biāo)準(zhǔn)的SQL結(jié)構(gòu)化查詢語(yǔ)言,支持多種數(shù)據(jù)類型,提供面向?qū)ο蟠鎯?chǔ)的數(shù)據(jù)支持,具有第四代語(yǔ)言開(kāi)發(fā)工具,支持Unix、Windows NT、OS/2、Novell等多種平臺(tái)。除此之外,它還具有很好的并行處理功能。Oracle產(chǎn)品主要由Oracle服務(wù)器產(chǎn)品、Oracle開(kāi)發(fā)工具、Oracle應(yīng)用軟件組成,也有基于微機(jī)的數(shù)據(jù)庫(kù)產(chǎn)品。主要滿足對(duì)銀行、金融、保險(xiǎn)等企業(yè)、事業(yè)開(kāi)發(fā)大型數(shù)據(jù)庫(kù)的需求。
2.SQL Server
SQL即結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language,簡(jiǎn)稱為SQL)。SQL Server最早出現(xiàn)在1988年,當(dāng)時(shí)只能在OS/2操作系統(tǒng)上運(yùn)行。2000年12月微軟發(fā)布了SQL Server 2000,該軟件可以運(yùn)行于Windows NT/2000/XP等多種操作系統(tǒng)之上,是支持客戶機(jī)/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫(kù)管理系統(tǒng),它可以幫助各種規(guī)模的企業(yè)管理數(shù)據(jù)。
隨著用戶群的不斷增大,SQL Server在易用性、可靠性、可收縮性、支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)、系統(tǒng)集成等方面日趨完美。特別是SQL Server的數(shù)據(jù)庫(kù)搜索引擎,可以在絕大多數(shù)的操作系統(tǒng)之上運(yùn)行,并針對(duì)海量數(shù)據(jù)的查詢進(jìn)行了優(yōu)化。目前SQL Server已經(jīng)成為應(yīng)用最廣泛的數(shù)據(jù)庫(kù)產(chǎn)品之一。
由于使用SQL Server不但要掌握SQL Server的操作,而且還要能熟練掌握Windows NT/2000 Server的運(yùn)行機(jī)制,以及SQL語(yǔ)言,所以對(duì)非專業(yè)人員的學(xué)習(xí)和使用有一定的難度。
3.Sybase
1987年推出的大型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)Sybase,能運(yùn)行于OS/2、Unix、Windows NT等多種平臺(tái),它支持標(biāo)準(zhǔn)的關(guān)系型數(shù)據(jù)庫(kù)語(yǔ)言SQL,使用客戶機(jī)/服務(wù)器模式,采用開(kāi)放體系結(jié)構(gòu),能實(shí)現(xiàn)網(wǎng)絡(luò)環(huán)境下各節(jié)點(diǎn)上服務(wù)器的數(shù)據(jù)庫(kù)互訪操作。技術(shù)先進(jìn)、性能優(yōu)良,是開(kāi)發(fā)大中型數(shù)據(jù)庫(kù)的工具。Sybase產(chǎn)品主要由服務(wù)器產(chǎn)品Sybase SQL Server、客戶產(chǎn)品Sybase SQL Toolset和接口軟件Sybase Client/Server Interface組成,還有著名的數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)工具PowerBuilder。
4.DB2
DB2是基于SQL的關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品。20世紀(jì)80年代初期DB2的重點(diǎn)放在大型的主機(jī)平臺(tái)上。到90年代初,DB2發(fā)展到中型機(jī)、小型機(jī)以及微機(jī)平臺(tái)。DB2適用于各種硬件與軟件平臺(tái)。各種平臺(tái)上的DB2有共同的應(yīng)用程序接口,運(yùn)行在一種平臺(tái)上的程序可以很容易地移植到其他平臺(tái)。DB2的用戶主要分布在金融、商業(yè)、鐵路、航空、醫(yī)院、旅游等各個(gè)領(lǐng)域,以金融系統(tǒng)的應(yīng)用最為突出。
5.Access
Access是在Windows操作系統(tǒng)下工作的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。它采用了Windows程序設(shè)計(jì)理念,以Windows特有的技術(shù)設(shè)計(jì)查詢、用戶界面、報(bào)表等數(shù)據(jù)對(duì)象,內(nèi)嵌了VBA(全稱為Visual Basic Application)程序設(shè)計(jì)語(yǔ)言,具有集成的開(kāi)發(fā)環(huán)境。Access提供圖形化的查詢工具和屏幕、報(bào)表生成器,用戶建立復(fù)雜的報(bào)表、界面無(wú)需編程和了解SQL語(yǔ)言,它會(huì)自動(dòng)生成SQL代碼。
Access被集成到Office中,具有Office系列軟件的一般特點(diǎn),如菜單、工具欄等。與其他數(shù)據(jù)庫(kù)管理系統(tǒng)軟件相比,更加簡(jiǎn)單易學(xué),一個(gè)普通的計(jì)算機(jī)用戶,沒(méi)有程序語(yǔ)言基礎(chǔ),仍然可以快速地掌握和使用它。最重要的一點(diǎn)是,Access的功能比較強(qiáng)大,足以應(yīng)付一般的數(shù)據(jù)管理及處理需要,適用于中小型企業(yè)數(shù)據(jù)管理的需求。當(dāng)然,在數(shù)據(jù)定義、數(shù)據(jù)安全可靠、數(shù)據(jù)有效控制等方面,它比前面幾種數(shù)據(jù)庫(kù)產(chǎn)品要遜色不少。
postgreSQL是一款先進(jìn)的開(kāi)源數(shù)據(jù)庫(kù),擁有非常齊全的自由軟件的對(duì)象-關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(ORDBMS),可面向企業(yè)復(fù)雜SQL的OLTP業(yè)務(wù)場(chǎng)景,支持多項(xiàng)企業(yè)級(jí)功能,能解決使用數(shù)據(jù)庫(kù)的各種難題。
PostgreSQL的優(yōu)勢(shì)有很多。它是一個(gè)免費(fèi)的對(duì)象-關(guān)系數(shù)據(jù)庫(kù)服務(wù)器(ORDBMS),在靈活的BSD許可證下發(fā)行。
postgreSQL的特征
函數(shù):通過(guò)函數(shù),可以在數(shù)據(jù)庫(kù)服務(wù)器端執(zhí)行指令程序。
索引:用戶可以自定義索引方法,或使用內(nèi)置的 B 樹(shù),哈希表與 GiST 索引。
觸發(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ì)于其他的用戶都不可見(jiàn),直到該事務(wù)成功提交。
規(guī)則:規(guī)則(RULE)允許一個(gè)查詢能被重寫(xiě),通常用來(lái)實(shí)現(xiàn)對(duì)視圖(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、刪除(DELETE)。
數(shù)據(jù)類型:包括文本、任意精度的數(shù)值數(shù)組、JSON 數(shù)據(jù)、枚舉類型、XML 數(shù)據(jù)等。全文檢索:通過(guò) Tsearch2 或 OpenFTS,8.3版本中內(nèi)嵌 Tsearch2。
NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 數(shù)據(jù)庫(kù)的外部數(shù)據(jù)包裝器。
數(shù)據(jù)倉(cāng)庫(kù):能平滑遷移至同屬postgreSQL生態(tài)的GreenPlum,DeepGreen,HAWK 等,使用 FDW 進(jìn)行 ETL。
David Bolton是一名獨(dú)立開(kāi)發(fā)者,他使用PostgreSQL和MySQL都已有超過(guò)十年的時(shí)間。近日,他撰文闡述了選擇PostgreSQL而不是MySQL的理由。他認(rèn)為,MySQL之所以仍然如此流行是因?yàn)槊總€(gè)Linux Web托管軟件包中都包含它。但隨著Oracle將其收購(gòu),MySQL的開(kāi)源程度大不如前。而PostgreSQL不僅發(fā)展更快,還加入了JSON支持,成為少數(shù)幾個(gè)支持NoSQL的關(guān)系型數(shù)據(jù)庫(kù)之一。
什么是NoSQL數(shù)據(jù)庫(kù)?從名稱“非SQL”或“非關(guān)系型”衍生而來(lái),這些數(shù)據(jù)庫(kù)不使用類似SQL的查詢語(yǔ)言,通常稱為結(jié)構(gòu)化存儲(chǔ)。這些數(shù)據(jù)庫(kù)自1960年就已經(jīng)存在,但是直到現(xiàn)在一些大公司(例如Google和Facebook)開(kāi)始使用它們時(shí),這些數(shù)據(jù)庫(kù)才流行起來(lái)。該數(shù)據(jù)庫(kù)最明顯的優(yōu)勢(shì)是擺脫了一組固定的列、連接和類似SQL的查詢語(yǔ)言的限制。有時(shí),NoSQL這個(gè)名稱也可能表示“不僅僅SQL”,來(lái)確保它們可能支持SQL。 NoSQL數(shù)據(jù)庫(kù)使用諸如鍵值、寬列、圖形或文檔之類的數(shù)據(jù)結(jié)構(gòu),并且可以如JSON之類的不同格式存儲(chǔ)。