Ⅰ pgsql比mysql好在哪
Pgsql和Mysql的對比
工作中用過這兩個資料庫,但都不是太深入,僅限於用而已,但給我留下的印象就是Pgsql更好些,因為這兩個庫我都遇到過數據丟失的問題,前者我通過網上方法加自己的判斷有驚無險地恢復了,而後者搜索各種資料加問身邊的專家都沒辦法。
剛網上搜了一下兩者的區別,總體的感覺也是前者是最好的開源關系資料庫,而後者是互聯網行業應用最廣泛的資料庫, 可能應用等多發現的坑也多,網上相關資料也多。如果讓我個人選沒特殊要求情況下會選前者。
關於兩個的區別可以看知乎上相關問題,回答很精彩,
其中一個如下。
一、 PostgreSQL 的穩定性極強, Innodb 等引擎在崩潰、斷電之類的災難場景下抗打擊能力有了長足進步,然而很多 MySQL 用戶都遇到過Server級的資料庫丟失的場景——mysql系統庫是MyISAM的,相比之下,PG資料庫這方面要好一些。
二、任何系統都有它的性能極限,在高並發讀寫,負載逼近極限下,PG的性能指標仍可以維持雙曲線甚至對數曲線,到頂峰之後不再下降,而 MySQL 明顯出現一個波峰後下滑(5.5版本之後,在企業級版本中有個插件可以改善很多,不過需要付費)。
三、PG 多年來在 GIS 領域處於優勢地位,因為它有豐富的幾何類型,實際上不止幾何類型,PG有大量字典、數組、bitmap 等數據類型,相比之下mysql就差很多,instagram就是因為PG的空間資料庫擴展POSTGIS遠遠強於MYSQL的my spatial而採用PGSQL的。
四、PG 的「無鎖定」特性非常突出,甚至包括 vacuum 這樣的整理數據空間的操作,這個和PGSQL的MVCC實現有關系。
五、PG 的可以使用函數和條件索引,這使得PG資料庫的調優非常靈活,mysql就沒有這個功能,條件索引在web應用中很重要。
六、PG有極其強悍的 SQL 編程能力(9.x 圖靈完備,支持遞歸!),有非常豐富的統計函數和統計語法支持,比如分析函數(ORACLE的叫法,PG里叫window函數),還可以用多種語言來寫存儲過程,對於R的支持也很好。這一點上MYSQL就差很遠,很多分析功能都不支持,騰訊內部數據存儲主要是MYSQL,但是數據分析主要是HADOOP+PGSQL(聽李元佳說過,但是沒有驗證過)。
七、PG 得多種集群架構可以選擇,plproxy 可以支持語句級的鏡像或分片,slony 可以進行欄位級的同步設置,standby 可以構建WAL文件級或流式的讀寫分離集群,同步頻率和集群策略調整方便,操作非常簡單。
八、一般關系型資料庫的字元串有限定長度8k左右,無限長 TEXT 類型的功能受限,只能作為外部大數據訪問。而 PG 的 TEXT 類型可以直接訪問,SQL語法內置正則表達式,可以索引,還可以全文檢索,或使用xml xpath。用PG的話,文檔資料庫都可以省了。
九,對於WEB應用來說,復制的特性很重要,mysql到現在也是非同步復制,pgsql可以做到同步,非同步,半同步復制。還有mysql的同步是基於binlog復制,類似oracle golden gate,是基於stream的復制,做到同步很困難,這種方式更加適合異地復制,pgsql的復制基於wal,可以做到同步復制。同時,pgsql還提供stream復制。
Ⅱ 對比其他資料庫軟體,postgresql有什麼優勢
一、 PostgreSQL 的穩定性極強, Innodb 等引擎在崩潰、斷電之類的災難場景下抗打擊能力有了長足進步,然而很多 MySQL 用戶都遇到過Server級的資料庫丟失的場景——mysql系統庫是MyISAM的,相比之下,PG資料庫這方面要好一些。
二、任何系統都有它的性能極限,在高並發讀寫,負載逼近極限下,PG的性能指標仍可以維持雙曲線甚至對數曲線,到頂峰之後不再下降,而 MySQL 明顯出現一個波峰後下滑(5.5版本之後,在企業級版本中有個插件可以改善很多,不過需要付費)。
三、PG 多年來在 GIS 領域處於優勢地位,因為它有豐富的幾何類型,實際上不止幾何類型,PG有大量字典、數組、bitmap 等數據類型,相比之下mysql就差很多,instagram就是因為PG的空間資料庫擴展POSTGIS遠遠強於MYSQL的my spatial而採用PGSQL的。
四、PG 的「無鎖定」特性非常突出,甚至包括 vacuum 這樣的整理數據空間的操作,這個和PGSQL的MVCC實現有關系。
五、PG 的可以使用函數和條件索引,這使得PG資料庫的調優非常靈活,mysql就沒有這個功能,條件索引在web應用中很重要。
Ⅲ 為什麼 PostgreSQL 沒有 MySQL 流行
跟mysql的歷史有關系,mysql在2008年賣給了sun公司,並一直可以免費的供大傢伙使用。
但是10年sun被oracle收購,oracle是一個以出售資料庫起家的公司,收購sun後,雖然一直支持mysql的免費策略。但是保不齊那天就不免費了。
PostgreSQL資料庫沒有太多版本的選擇,並且這個資料庫的最優勢產品時對事務的支持。可能市面上的大多數軟體對事務的要求沒那麼強烈。導致mysql使用人員更多。
PostgreSQL資料庫是mysql被oralce收購後逐漸流行起來的開源資料庫。雖然他的歷史比mysql更悠久。
但是現在大多數公司使用開源項目的做的軟體產品。培養了大量的使用mysql熟悉的程序員。也就導致了現在還是會有大量的mysql使用者。公司在做產品時肯定會考慮到自己公司對資料庫產品的熟悉程度來決定使用什麼樣的資料庫。
但是現在PostgreSQL已經開始慢慢的要蘇醒了。
Ⅳ 為什麼 PostgreSQL 在國內流行度遠不如 MySQL,主要是哪些方面的原因造成的
PostgreSQL技術社區存在問題,在社區中他們很快就回答了問題,但在一些設計問題上,核心員工很頑固尤其是對當前的社區版本,即使有一個明顯的錯誤,也不願承認。
mysql用的人多,但mysql有它的局限性,一般在mysql上碰到釘子了才會考慮postgres,但問題是mysql能適用於絕大部分互聯網項目。postgres也在慢慢流行起來了,畢竟它的優勢在那裡——對事務的良好支持,並發良好的支持,以及復雜查詢的優化能力。這對於很多對一致性要求高的復雜系統都是很有必要的。
Ⅳ 為什麼選擇PostgreSQL而不是MySQL
David Bolton是一名獨立開發者,他使用PostgreSQL和MySQL都已有超過十年的時間。近日,他撰文闡述了選擇PostgreSQL而不是MySQL的理由。他認為,MySQL之所以仍然如此流行是因為每個Linux Web託管軟體包中都包含它。但隨著Oracle將其收購,MySQL的開源程度大不如前。而PostgreSQL不僅發展更快,還加入了JSON支持,成為少數幾個支持NoSQL的關系型資料庫之一。
MySQL/MariaDB的當前版本是5.7.6(MariaDB為MySQL創建者Monty Widenius創建的一個MySQL分支),PostgreSQL的版本是9.4.1。Bolton從以下幾個方面對比了兩者的最新版本:
ANSI標准兼容性:與先前的版本相比,MySQL已經有了長足的進步,但MySQL背後的哲學是,如果客戶喜歡,他們就會支持非標准擴展,而PostgreSQL從開始就將標准構建到平台里。不過,二者殊途同歸,差別不大;
ACID遵從性:PostgreSQL有一個存儲引擎,而MySQL有9個,但只有MyIsam和InnoDB與大部分用戶有關,其中,後者為默認存儲引擎。InnoDB和PostgreSQL都完全遵循ACID,差別不大;
無鎖表修改:MyIsam使用表級鎖來提升速度,這會導致寫互斥。但PostgreSQL和InnoDB均使用行級鎖,差別不大;
子查詢:長期以來,這一直是MySQL的一個弱點,雖然5.6.5作了重大改進,但PostgreSQL對表連接支持得更好,尤其是MySQL不支持全外連接,因此,這方面PostgreSQL勝過MySQL;
JSON支持和NoSQL:PostgreSQL最近增加了JSON支持,與傳統的關系型資料庫相比,它提供了更大的數據存儲靈活性,因此,這方面PostgreSQL勝過MySQL。
此外,Bolton指出,選擇PostgreSQL還有如下理由:
更好的許可:PostgreSQL採用類似MIT的許可協議,允許開發人員做任何事情,包括在開源或閉源產品中商用,而MySQL的客戶端遵循GPL許可協議,所以開發人員必須向Oracle付費或者將自己的應用程序開源;
更好的數據一致性: PostgreSQL會在數據插入和更新之前進行嚴格的驗證,確保數據合法才會進行相應的操作,但在MySQL中,開發人員需要將伺服器設定為嚴格SQL模式才能達到同樣的目的,否則可能會產生不規范數據;
伺服器擴展:MySQL提供了插件程序API,
支持C/C++或任何兼容C的語言,而且從5.7.3版本開始支持全文搜索,PostgreSQL有一個類似的系統但支持的語言更多,包括C/C++、
Java、.Net、Perl、
Python、Ruby、Tcl、ODBC等,它甚至可以在單獨的進程中運行用戶提供的代碼;除了所有關系型資料庫都包含的有關資料庫、表和列的一般信息
外,PostgreSQL系統目錄中還可以包含關於數據類型、函數和存取方法的信息,開發人員可以通過修改這些信息實現擴展。
Ⅵ postgreSQL資料庫有什麼用啊
優點事實上, PostgreSQL 的特性覆蓋了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以說是目前世界上最豐富的數據類型的支持,其中有些數據類型可以說連商業資料庫都不具備, 比如 IP 類型和幾何類型等;其次,PostgreSQL 是全功能的自由軟體資料庫,很長時間以來,PostgreSQL 是唯一支持事務、子查詢、多版本並行控制系統、數據完整性檢查等特性的唯一的一種自由軟體的資料庫管理系統。直到最近才有 Inprise 的 InterBase 以及 SAP 等廠商將其原先專有軟體開放為自由軟體之後才打破了這個唯一。最後,PostgreSQL擁有一支非常活躍的開發隊伍,而且在許多黑客的努力下,PostgreSQL 的質量日益提高。
從技術角度來講,PostgreSQL 採用的是比較經典的 C/S (client/server)結構,也就是一個客戶端對應一個伺服器端守護進程的模式,這個守護進程分析客戶端來的查詢請求,生成規劃樹,進行數據檢索並最終把結果格式化輸出後返回給客戶端。為了便於客戶端的程序的編寫,由資料庫伺服器提供了統一的客戶端 C 介面。而不同的客戶端介面都是源自這個 C 介面,比如 ODBC,JDBC,Python,Perl ,Tcl,C/C++,ESQL 等, 同時也要指出的是,PostgreSQL 對介面的支持也是非常豐富的,幾乎支持所有類型的資料庫客戶端介面。這一點也可以說是 PostgreSQL 一大優點。
缺點
從 Postgres 開始,PostgreSQL 就經受了多次變化。
首先,早期的 PostgreSQL 繼承了幾乎所有 Ingres, Postgres, Postgres95 的問題:過於學院味,因為首先它的目的是資料庫研究,因此不論在穩定性, 性能還是使用方便方面,長期以來一直沒有得到重視,直到 PostgreSQL 項目開始以後,情況才越來越好,目前,PostgreSQL 已經完全可以勝任任何中上規模範圍內的應用范圍的業務。目前有報道的生產資料庫的大小已經有 TB 級的數據量,已經逼近 32 位計算的極限。不過學院味也給 PostgreSQL 帶來一個意想不到的好處:大概因為各大學的軟硬體環境差異太大的緣故,它是目前支持平台最多的資料庫管理系統的一種,所支持的平台多達十幾種,包括不同的系統,不同的硬體體系。至今,它仍然保持著支持平台最多的資料庫管理系統的稱號。
其次,PostgreSQL 的確還欠缺一些比較高端的資料庫管理系統需要的特性,比如資料庫集群,更優良的管理工具和更加自動化的系統優化功能 等提高資料庫性能的機制等。
Ⅶ 為什麼PostgreSQL是"最先進的開源資料庫
PostgreSQL被譽為市場上最先進的開源資料庫。數據一致性和完整性等性質都是PostgreSQL的高度優先事項。
MySQL被譽為是最流行的開源資料庫。最初MySQL就被設計為快速的Web伺服器後台,是Web系統的理想資料庫之選,且文檔資源豐富。
Ⅷ PostgreSQL在中國的使用情況與地位
很多大公司如: 阿里巴巴,京東商城
Ⅸ 為什麼PostgreSQL比MySQL更能保障數據的一致性
David Bolton是一名獨立開發者,他使用PostgreSQL和MySQL都已有超過十年的時間。近日,他撰文闡述了選擇PostgreSQL而不是MySQL的理由。他認為,MySQL之所以仍然如此流行是因為每個Linux Web託管軟體包中都包含它。但隨著Oracle將其收購,MySQL的開源程度大不如前。而PostgreSQL不僅發展更快,還加入了JSON支持,成為少數幾個支持NoSQL的關系型資料庫之一。
Ⅹ pgsql資料庫怎麼樣
PostgreSQL是以加州大學伯克利分校計算機系開發的 POSTGRES 版本 4.2 為基礎的對象關系型資料庫管理系統(ORDBMS)。POSTGRES 領先的許多概念只是在非常遲的時候才出現在商業資料庫中。