中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

pg數據庫和mysql數據庫有什么區別

發布時間:2020-08-29 09:20:54 來源:億速云 閱讀:902 作者:小新 欄目:MySQL數據庫

pg數據庫和mysql數據庫有什么區別?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

區別:1、MySQL傾向于使用者的角度;pg數據庫傾向于理論角度。2、MySQL一般會將數據合法性驗證交給客戶;pg數據庫在合法性難方面做得比較嚴格。3、在SQL的標準實現上,pg數據庫要比MySQL完善,而且功能實現比較嚴謹。

pg數據庫和mysql數據庫有什么區別

MySQL

MySQL相對來說比較年輕,首度出現在1994年。它聲稱自己是最流行的開源數據庫。MySQL就是LAMP(用于Web開發的軟件包,包括 Linux、Apache及Perl/PHP/Python)中的M。構建在LAMP棧之上的大多數應用都會使用MySQL,包括那些知名的應用,如 WordPress、Drupal、Zend及phpBB等。

一開始,MySQL的設計目標是成為一個快速的Web服務器后端,使用快速的索引序列訪問方法(ISAM),不支持ACID。經過早期快速的發展之 后,MySQL開始支持更多的存儲引擎,并通過InnoDB引擎實現了ACID。MySQL還支持其他存儲引擎,提供了臨時表的功能(使用MEMORY存 儲引擎),通過MyISAM引擎實現了高速讀的數據庫,此外還有其他的核心存儲引擎與第三方引擎。

MySQL的文檔非常豐富,有很多質量不錯的免費參考手冊、圖書與在線文檔,還有來自于Oracle和第三方廠商的培訓與支持。

MySQL近幾年經歷了所有權的變更和一些頗具戲劇性的事件。它最初是由MySQL AB開發的,然后在2008年以10億美金的價格賣給了Sun公司,Sun公司又在2010年被Oracle收購。Oracle支持MySQL的多個版 本:Standard、Enterprise、Classic、Cluster、Embedded與Community。其中有一些是免費下載的,另外一 些則是收費的。其核心代碼基于GPL許可,對于那些不想使用GPL許可的開發者與廠商來說還有商業許可可供使用。

現在,基于最初的MySQL代碼還有更多的數據庫可供選擇,因為幾個核心的MySQL開發者已經發布了MySQL分支。最初的MySQL創建者之一 Michael “Monty” Widenius貌似后悔將MySQL賣給了Sun公司,于是又開發了他自己的MySQL分支MariaDB,它是免費的,基于GPL許可。知名的 MySQL開發者Brian Aker所創建的分支Drizzle對其進行了大量的改寫,特別針對多CPU、云、網絡應用與高并發進行了優化。

PostgreSQL

PostgreSQL標榜自己是世界上最先進的開源數據庫。PostgreSQL的一些粉絲說它能與Oracle相媲美,而且沒有那么昂貴的價格和傲慢的客服。它擁有很長的歷史,最初是1985年在加利福尼亞大學伯克利分校開發的,作為Ingres數據庫的后繼。

PostgreSQL是完全由社區驅動的開源項目,由全世界超過1000名貢獻者所維護。它提供了單個完整功能的版本,而不像MySQL那樣提供了 多個不同的社區版、商業版與企業版。PostgreSQL基于自由的BSD/MIT許可,組織可以使用、復制、修改和重新分發代碼,只需要提供一個版權聲 明即可。

可靠性是PostgreSQL的最高優先級。它以堅如磐石的品質和良好的工程化而聞名,支持高事務、任務關鍵型應用。PostgreSQL的文檔非 常精良,提供了大量免費的在線手冊,還針對舊版本提供了歸檔的參考手冊。PostgreSQL的社區支持是非常棒的,還有來自于獨立廠商的商業支持。

數據一致性與完整性也是PostgreSQL的高優先級特性。PostgreSQL是完全支持ACID特性的,它對于數據庫訪問提供了強大的安全性 保證,充分利用了企業安全工具,如Kerberos與OpenSSL等。你可以定義自己的檢查,根據自己的業務規則確保數據質量。在眾多的管理特性 中,point-in-time recovery(PITR)是非常棒的特性,這是個靈活的高可用特性,提供了諸如針對失敗恢復創建熱備份以及快照與恢復的能力。但這并不是 PostgreSQL的全部,項目還提供了幾個方法來管理PostgreSQL以實現高可用、負載均衡與復制等,這樣你就可以使用適合自己特定需求的功能 了。

平臺

MySQL與PostgreSQL都出現在一些高流量的Web站點上:

MySQL:Slashdot、Twitter、Facebook與Wikipedia

PostgreSQL:Yahoo使用了一個修改的PostgreSQL數據庫來處理每天數以億計的事件,還有Reddit和Disqus

MySQL與PostgreSQL都能運行在多個操作系統上,如Linux、Unix、Mac OS X與Windows。他們都是開源、免費的,因此測試他們時的唯一代價就是你的時間與硬件。他們都很靈活且具有可伸縮性,可用在小型系統和大型分布式系統 上。MySQL在一個領域上要比PostgreSQL更進一步,那就是它的觸角延伸到了嵌入式領域,這是通過libmysqld實現的。 PostgreSQL不支持嵌入式應用,依然堅守在傳統的客戶端/服務器架構上。

MySQL通常被認為是針對網站與應用的快速數據庫后端,能夠進行快速的讀取和大量的查詢操作,不過在復雜特性與數據完整性檢查方面不太盡如人意。

PostgreSQL是針對事務型企業應用的嚴肅、功能完善的數據庫,支持強ACID特性和很多數據完整性檢查。他們二者都在某些任務上具有很快的速 度,MySQL不同存儲引擎的行為有較大差別。MyISAM引擎是最快的,因為它只執行很少的數據完整性檢查,適合于后端讀操作較多的站點,不過對于包含 敏感數據的讀/寫數據庫來說就是個災難了,因為MyISAM表最終可能會損壞。MySQL提供了修復MySQL表的工具,不過對于敏感數據來說,支持 ACID特性的InnoDB則是個更好的選擇。

與之相反,PostgreSQL則是個只有單一存儲引擎的完全集成的數據庫。你可以通過調整postgresql.conf文件的參數來改進性能,也可以調整查詢與事務。PostgreSQL文檔對于性能調優提供了非常詳盡的介紹。

MySQL與PostgreSQL都是高可配置的,并且可以針對不同的任務進行相應的優化。他們都支持通過擴展來添加額外的功能。

一個常見的誤解就是MySQL要比PostgreSQL更容易學習。關系數據庫系統都是非常復雜的,這兩個數據庫的學習曲線其實是差不多的。

標準兼容性

PostgreSQL旨在實現SQL兼容性(當前標準是ANSI-SQL:2008)。MySQL則兼容大部分SQL,不過還有自己的擴展,可以支 持NoSQL特性,這在參考手冊中都有介紹。每種方式都有優缺點。兼容標準會讓數據庫管理員、數據庫開發者與應用開發者更舒服一些,因為這意味著他們只需 學習一套標準、一套特性和命令即可。這會節省時間,提升效率,也不會被鎖定在特定的廠商上。

支持使用非標準的自定義功能的人們認為這樣可以快速采用新的特性,而不必等待標準進程完成。ANSI/ISO標準在不斷演化,因此標準兼容性也是個 變化的目標:知名的關系型數據庫Microsoft SQL Server、Oracle與IBM DB2也只是部分兼容于標準。

MySQL與PostgreSQL(pg數據庫)的區別

MySQL是應用開發者創建出來的DBMS;而PostgreSQL是由數據庫開發者創建出來的DBMS 。

換句話說,MySQL傾向于使用者的角度,回答的問題是 “你想解決的是什么問題”;而PostgreSQL傾向于理論角度,回答的問題是 “數據庫應該如何來解決問題” 。

MySQL一般會將數據合法性驗證交給客戶;PostgreSQL在合法性難方面做得比較嚴格。比如MySQL里插入 “2012-02-30” 這個時間時,會成功,但結果會是 “0000-00-00”;PostgreSQL不允許插入此值。

通常,PostgreSQL 被認為特性豐富,而MySQL被認為速度更快。但這個觀點基本是在 MySQL 4.x / PostgreSQL 7.x 的事情,現在情況已經變了,PostgreSQL 在9.x版本速度上有了很大的改進,而MySQL特性也在增加。

在架構上,MySQL分為兩層:上層的SQL層和幾個存儲引擎(比如InnoDB,MyISAM)。PostgreSQL 只有一個存儲引擎提供這兩個功能。

這兩個數據庫系統都可以針對應用的情境被優化、定制,精確的說哪個性能更好很難。MySQL項目一開始焦點就在速度上,而PostgreSQL一開始焦點在特性和規范標準上。

PostgreSQL相對于MySQL的優勢

1、在SQL的標準實現上要比MySQL完善,而且功能實現比較嚴謹;

2、存儲過程的功能支持要比MySQL好,具備本地緩存執行計劃的能力;

3、對表連接支持較完整,優化器的功能較完整,支持的索引類型很多,復雜查詢能力較強;

4、PG主表采用堆表存放,MySQL采用索引組織表,能夠支持比MySQL更大的數據量。

5、PG的主備復制屬于物理復制,相對于MySQL基于binlog的邏輯復制,數據的一致性更加可靠,復制性能更高,對主機性能的影響也更小。

6、MySQL的存儲引擎插件化機制,存在鎖機制復雜影響并發的問題,而PG不存在。

MySQL相對于PG的優勢:

1、innodb的基于回滾段實現的MVCC機制,相對PG新老數據一起存放的基于XID的MVCC機制,是占優的。新老數據一起存放,需要定時觸 發VACUUM,會帶來多余的IO和數據庫對象加鎖開銷,引起數據庫整體的并發能力下降。而且VACUUM清理不及時,還可能會引發數據膨脹;

2、MySQL采用索引組織表,這種存儲方式非常適合基于主鍵匹配的查詢、刪改操作,但是對表結構設計存在約束;

3、MySQL的優化器較簡單,系統表、運算符、數據類型的實現都很精簡,非常適合簡單的查詢操作;

4、MySQL分區表的實現要優于PG的基于繼承表的分區實現,主要體現在分區個數達到上千上萬后的處理性能差異較大。

5、MySQL的存儲引擎插件化機制,使得它的應用場景更加廣泛,比如除了innodb適合事務處理場景外,myisam適合靜態數據的查詢場景。

感謝各位的閱讀!看完上述內容,你們對pg數據庫和mysql數據庫有什么區別大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

大同县| 彰化市| 紫金县| 陆良县| 鄱阳县| 社旗县| 岢岚县| 唐海县| 荔浦县| 晋中市| 琼海市| 霍林郭勒市| 黄山市| 赤水市| 德惠市| 邵阳市| 丁青县| 屏东市| 巴彦县| 三台县| 乳源| 搜索| 安溪县| 南昌市| 衡阳市| 茂名市| 湖北省| 广东省| 邓州市| 平乐县| 洞头县| 大丰市| 温宿县| 安宁市| 海盐县| 遵化市| 衡南县| 宁城县| 蓬安县| 象山县| 湖北省|