天天看點

MySQL 和 PostgreSQL 對比PostgreSQL 與 MySQL 對比

PostgreSQL 與 MySQL 對比

文章目錄

  • PostgreSQL 與 MySQL 對比
    • **Summary**
    • **PostgreSQL 與 MySQL:主要差別**
      • **治理**
      • **SQL 合規性**
      • **支援的平台**
      • **程式設計語言支援**
      • **安全**
      • **通路方法**
      • **複制**
      • **表現**
      • **社群支援**
    • **Which is better for your Project**

Summary

RDBMS PostgreSQL MySQL
Governance 它是免費和開源的,并在 PostgreSQL 許可下釋出,類似于 MIT 許可 提供開源和付費商業版本
SQL Compliance PostgreSQL 在很大程度上符合 SQL 标準,并且幾乎滿足 SQL 标準的所有核心功能 MySQL 專注于速度而不是實作核心 SQL 準則
Supported Platforms Solaris, Windows OS, Linux, OS X, Unix-OS and Hp-UX OS Solaris, Windows OS, Linux, OS X, and FreeBSD OS
Programming Languages Support C/C++, Java, .Net, R, Perl, Python, JavaScript, and others C/C++, Erlang, PHP, Lisp, Go, Perl and others
Security PostgreSQL 為加密連接配接提供本機 SLL 支援 MySQL内置了很多安全功能,安全性很高
Access methods 支援所有通路方法 支援所有通路方法
Replication PostgreSQL 可以進行主從複制,其他類型的實作可以使用第三方擴充來實作 MySQL采用主主複制,可以進行主從複制
Performance 廣泛用于讀寫速度至關重要且需要執行複雜查詢的大型系統 廣泛用于僅需要資料庫進行資料交易的基于 Web 的項目
Community support 一個非常強大和活躍的社群,緻力于改進現有功能并鞏固其作為最先進資料庫的地位 專注于維護現有功能而很少釋出新功能的大型社群
RDBMS:Relational Database Management System 關系資料庫管理系統

PostgreSQL 與 MySQL:主要差別

PostgreSQL 和 MySQL 是兩種最常用的 RDBMS,為您的項目選擇正确的關系資料庫管理系統的決定可能會成敗。即使它們有大量重疊的功能,這一切都取決于您的要求以及您希望如何解決您前面的問題。下面我們将讨論這兩個系統最突出的特性,并幫助您選擇最佳的 RDBMS。

治理

技術的治理模型具有獨特的優勢,并且在 MySQL 和 PostgreSQL 的情況下展示了顯着差異。PostgreSQL 由 PostgreSQL 全球開發組開發,在開源許可下可用,類似于 MIT 許可。MySQL 項目的源代碼在 GNU 許可下向公衆開放,同時還有多項專有協定。它現在歸甲骨文公司所有,必須提供各種付費版本供商業使用。

SQL 合規性

SQL 合規性标準是資料庫在實施所有 SQL 準則和标準時必須遵守的一組法規。SQL 合規性對于希望在其項目(應用程式)中使用異構資料庫的公司來說是一個重要的限制。PostgreSQL 最符合 SQL 标準,因為它滿足 SQL 标準 179 個核心功能中的 160 個,以及許多可選功能。另一方面,MySQL 部分 SQL 相容,因為它沒有實作完整的 SQL 标準。但是,它确實提供了許多有用的非 SQL 功能,例如“缺乏 CHECK 限制”。

支援的平台

PostgreSQL 和 MySQL 系統都可以在 Solaris、Windows 作業系統、Linux 和 OS X 上運作。 OS X 由 Apple Inc. 開發,Solaris 是 Oracle 産品,Windows OS 是 Microsoft 産品,Linux 是開源作業系統. PostgreSQL 還支援由科技巨頭惠普開發的 HP-UX 作業系統以及開源的 Unix 作業系統。相比之下,MySQL 擴充了對開源 FreeBSD 作業系統的支援。

程式設計語言支援

如果一個系統支援多種程式設計語言,它可以幫助來自不同背景的開發人員以他們熟悉的語言執行任務,進而提高效率。由于伺服器支援多種程式設計語言的資料庫功能,開發人員可以輕松決定是在用戶端還是在伺服器執行任務。對其他程式設計語言的支援為開發人員提供了額外的能力。

PostgreSQL 是用 C 編寫的,支援多種程式設計語言,最突出的是 C/C++、Delphi、JavaScript、Java、Python、R、Tcl、Go、Lisp、Erlang 和 .Net 等。MySQL 是用 C 和 C++ 編寫的,并擴充了對 C/C++、Erlang、PHP、Lisp、Go、Perl、Java、Delphi、R 和 Node.js 的支援。

安全

DBMS 的安全性對其可靠性産生深遠的影響,并成為在系統中尋找的首要特征之一。資料庫安全指向集體使用流程和工具來保護 DBMS 或資料庫免受來自非法來源的威脅和攻擊。MySQL 是高度安全的,包括多種安全功能,其中一些功能相當先進。它基于通路控制清單 (ACL) 為使用者操作(例如連接配接和查詢)執行安全協定。PostgreSQL 為用戶端/伺服器通信加密的連接配接提供本機 SLL 支援。此外,一個名為 SE-PostgreSQL 的内置增強功能提供了基于 SELinux 政策的額外通路控制。

通路方法

MySQL 和 PostgreSQL 均支援所有标準,并具有多種通用通路方式,包括 JDBC、ODBC 和 ADO.NET。JDBC 是用于 Java 程式設計的資料庫通路 API,而 ODBC 是用于通路資料庫的标準 API。ADO.NET 是一組 API,開發人員用來通路基于 XML 的資料。該平台的原生 C 庫和流 API 也可用于通路 PostgreSQL。

複制

資料庫複制是指将資料從一台計算機或伺服器以電子方式複制到另一台計算機或伺服器的過程,它允許所有使用者通路相同的資訊。資料庫可以利用多種技術來跨多個節點存儲剩餘資料。MySQL 使用主-主複制,其中每個節點都是一個主節點,并有權更新資料。但是,PostgreSQL 和 MySQL 都可以進行主從複制,其中一個節點是主節點,并由其他節點控制資料存儲。其他類型的實作可以使用第三方擴充在 PostgreSQL 中付諸實踐。

表現

PostgreSQL 适用于需要對資料進行身份驗證且讀/寫速度對成功至關重要的大型系統。此外,它還支援許多僅在專有解決方案中可用的性能增強器,包括無讀鎖的并發、SQL 伺服器和地理空間資料支援等。一般來說,PostgreSQL 最适合需要執行複雜查詢或資料倉庫和資料分析的系統。

MySQL 是那些基于 Web 的項目的首選,這些項目隻需要一個資料庫來進行資料交易,而不需要任何複雜的東西。它在僅需要高讀取速度的線上分析處理 (OLAP) 和線上事務處理 (OLTP ) 系統中運作得非常好。但是,一旦面臨繁重的負載或複雜的查詢,MySQL 就會開始表現不佳。

雖然我們讨論可以在何處使用這些系統,但 RDBMS 的實際性能隻能通過評估可能場景的名額來衡量,因為它主要取決于需求和所用項目的性質。

社群支援

社群支援對于改進任何資料庫系統都很重要。PostgreSQL 有一個非常活躍的社群,它不斷地幫助改進現有功能,它的創新送出者盡一切努力確定資料庫仍然是具有最新功能和最大安全性的最先進的資料庫。MySQL 還擁有龐大的追随者和貢獻者社群,他們專注于維護現有功能,同時偶爾會出現一些新功能。

Which is better for your Project

如果需要用于 Web 應用程式或自定義解決方案的高安全性 RDBMS,但如果需要能夠快速執行複雜任務的完全符合 SQL 的 RDBMS,則MySQL 将是項目的理想選擇。

同時,如果的要求圍繞複雜的程式、內建、複雜的設計和資料完整性,而不是圍繞高速和易于設定,那麼PostgreSQL 将是項目的理想選擇。