postgresql資料庫和mysql資料庫的對比分析

來源:互聯網
上載者:User

標籤:對比   貴的   利用   全文檢索搜尋   企業   備份   進階   大學   雜文   

1.Posgresql是進程模式,多進程,單線程,類似的還有Oracle。而MYSQL採用的是線程模式,單進程,多線程,對此,大家在運行資料庫的時候可以查看工作管理員,SQL Server也是如此。

眾所周知,多進程,進程模式,利用CPU時間片輪轉,可以利用更充分CPU,因此光拿多核單台機器上來說,他明顯在支援高並發效能方面更勝一籌。而線程模式呢,開一個線程顯然要比開一個進程所耗費的資源要少,另外在不同線程之間的環境轉換和訪問公用的儲存地區,顯然比在不同進程之間要快,所以它的處理速度要快,對資源的消耗較少,但是當高並發時,效能不佳。

2.儲存引擎。Posgresql只有一個儲存引擎,且綜合效能良好。而MYSQL支援不同表使用不同的儲存引擎。如MYISAM,InnoDB(Oracle所有),memory。在mysql中配置有許多不同的儲存引擎,使用者可以靈活的選擇適用於伺服器、資料庫和表格的儲存引擎,以便獲得最大的效能和最大的靈活性。這也是mysql不同於其他大型資料庫以及mysql為何如此受歡迎的主要因素。借鑒說明一下MYSQL中重要的3個儲存引擎的特點:

每種儲存引擎都有各自的優勢,不能籠統的說誰的效能更好,只有合適不合適。

(1)MyISAM儲存引擎:主要用於管理非事物表,它提供了高速的儲存與檢索,以及全文檢索搜尋能力。該儲存引擎插入資料快,但是空間和記憶體的使用效率較低。如果表主要適用於插入新紀錄和讀出記錄,那麼選擇MyISAM儲存引擎可以實現處理的高效率,不支援事物的提交和復原,查詢時會把整個表鎖定,但是速度快

(2)InnoDB儲存引擎:它主要用於交易處理應用程式,支援外鍵,同時還支援奔潰修複能力和並發控制。如果對事物的完整性要求比較高,要求實現並發通知,那麼選擇InnoDB儲存引擎比較有優勢。如果需要頻繁的進行更新、刪除操作,也可以選擇該儲存引擎,因為該儲存引擎可以實現事物的提交和復原。(所以事物就是對即時性要求比較高)

(3)Memory儲存引擎:Memory儲存引擎提供“記憶體中”表,該儲存引擎的所有資料都儲存在記憶體中,資料的處理速度很快但是安全性不高。

3.對於MYSQL來說,它目前使用更為普遍,所以它的商業支援和應有要好於Posgresql,這一點如果要商業應用也是不可以忽視的。

 

曆史對比  

 PostgreSQL社區是同質資料庫曆史最悠久,規模最大,發展最快的社區,PostgreSQL起源於1985年加州伯克利大學的Ingress項目,在學術界流行多年後,PostgreSQL項目開源了,社區開始蓬勃發展,截至目前,有超過1000名貢獻者和3萬名成員。   大社區的關鍵優勢在於使用者和開發人員之間的互動比較頻繁,使用者甚至可以直接參与到新功能的設計中,這種多元化的社區模式也是其它開源社區爭相模仿的模式。   MySQL社區最初起源於商業世界,MySQL於1994年誕生在瑞典,作為網站背後的高速資料庫,在MySQL AB公司控制幾年後,MySQL也選擇了開源,有商業公司的支援使得MySQL很快便成為世界上廣泛使用的資料庫之一,這也是Sun公司2008年花10億美元重金收購MySQL AB的原因,因為MySQL的流行,也成為歐盟調查Oracle收購Sun一案的主要因素。

  PostgreSQL特性和功能  

 通過數十年的發展,PostgreSQL被譽為市場上最先進的開來源資料庫,作為一個功能全面的開源關聯式資料庫管理系統,PostgreSQL在支援高事務,關鍵任務應用方面提供了許多特性。   PostgreSQL最核心的競爭力是對它保管的資料的安全保護能力,通過使用企業身分識別驗證機制,如LDAP或Kerberos控制資料庫的串連訪問,一單通過驗證,所有到資料庫的通訊都可以走SSL串連,提供了高度安全的保護。   添加或修改資料時,PostgreSQL強制執行使用者定義的大量約束,確保資料品質符合商務規則限制,從簡單的範圍檢查到複雜的外鍵檢查,一旦資料存放區到磁碟上,就可以進行備份,更重要的是,從災難恢複是至關重要的,PostgreSQL有一個簡單的線上備份工具,配合時間點恢複(PITR)機制,為管理員執行快速恢複提供了很好的靈活性。   PostgreSQL的核心架構允許其他社區小組通過附加模組的形式為PostgreSQL建立更進階的功能,一個很好的例子就是PostgreSQL的地理空間支援,此功能來自一個名為PostGIS的模組,它是PostgreSQL的一個簡單擴充,使其成為最強大的可儲存空間資料的開源或商務資料庫。   PostgreSQL另一個擴充能力是它具有多種不同類型的預存程序語言,允許開發人員使用他們熟悉的語言編寫伺服器端代碼,例如,需要執行複雜文本處理的觸發器可以用Perl編寫,以便利用其強大的Regex功能。  

 MySQL特性和功能

  MySQL被譽為是最流行的開來源資料庫,從一開始,MySQL就被設計為適合網站快速順序索引方法(ISAM)的資料存放區引擎,這種工作負載的一大特點就是有許多小型查詢,於是催生了查詢快取,MySQL叢集等提高MySQL效能的技術,MySQL叢集允許資料庫跨多台物理伺服器部署,實現負載平衡。   PostgreSQL不是唯一允許通過外部擴充增加資料庫功能的開來源資料庫,MySQL最大的優勢之一就是它的可插入式儲存引擎,MySQL預設採用的是MyISAM儲存引擎,為讀操作頻繁的環境提供更好的效能,而InnoDB儲存引擎更適合寫密集型事務環境。   此外,還有許多第三方儲存引擎,如Brighthouse和DB2,這種靈活性允許管理員根據每個表的需求調整MySQL執行個體,例如,對一個讀操作頻繁的表,如國家代碼錶,使用MyISAM儲存引擎,對於事務型表,如銷售訂單表,則使用InnoDB儲存引擎。   PostgreSQL和MySQL在各種應用場合都得到了廣泛的使用,例如,PostgreSQL一向以強力支撐事務密集型公司專屬應用程式而著名,但許多網站也用它來支撐Web應用程式,相反,MySQL一直都是Web應用程式的首選資料庫,但它在事務型公司專屬應用程式系統中也得到了大量使用。  

 社區為王  

 PostgreSQL和MySQL最大的不同可能不在技術,而是在社區上,開源項目從本質上來講,要由社區開發人員參與和貢獻,項目才能保持活力,開源社區有兩種不同的類型。   首先,有獨立自主社區型純開來源資料庫項目,PostgreSQL是這種最古老,最大的獨立開來源資料庫社區,這種社區的好處是真正獨立於廠商,不受廠商控制。   第二種開源社區是由廠商控制的,這種開源項目往往同時有社區免費版和商業付費版,MySQL就是一個例子,MySQL項目最初是由MySQL AB資助和控制的,所有MySQL核心開發人員和架構師都由MySQL AB出資僱傭,被Sun收購後,MySQL社區就被Sun控制,現在又被Oracle控制。  

 共用許可  

 許可,或原始碼允許如何修改和共用,這可能是真正影響開來源資料庫選擇的決定性因素,PostgreSQL許可是仿照BSD許可模式的,它允許修改代碼,並根據修改者自願是否以開源形式再發布,這種開放式許可對想使用PostgreSQL作為他們解決方案一部分的軟體廠商來說是最理想的,因為PostgreSQL許可不強制衍生解決方案也開源,軟體廠商可以選擇開放他們的源碼,也可以不開放。   MySQL是通過GNU GPL共用,並由Oracle控制,GNU GPL更加開放,它鼓勵免費共用代碼,它防止了採用GNU GPL共用程式碼後,也被迫採用源作者GNU GPL許可共用的缺陷。   

小結  

 雖然PostgreSQL和MySQL同屬開來源資料庫,但相同點也可能僅限於此,重疊的地方很少,它們都有自己鮮明的特性,相對於昂貴的專有資料庫產品,它們都是高品質的開來源資料庫,尤其是在當今經濟不景氣的環境下,選擇優秀的開來源資料庫不失為為企業節省成本的一種好方法。

postgresql資料庫和mysql資料庫的對比分析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.