在比較開源數據庫時,重要的是弄清楚企業想要從數據庫中獲取什麼,以便作出正確的選擇。數據庫
在過去的五年中,具備商業許可證的數據庫系統開始變得沒那麼流行,而開源數據庫的部署率整體有所上升。根據DB-Engines的數據,到2021年,在企業部署方面,開源許可證數據庫管理系統已經取代其商業對手。編程
與大多數技術同樣,選擇開源數據庫須要企業進行自我評估,以便爲數據選擇正確的選項。安全
開源數據庫管理系統與商業數據庫管理系統之間的區別在於許可證。開源數據庫是開放的,並免費提供使用,而專有產品則須要從供應商處購買。網絡
企業轉向開源數據庫管理系統能夠下降與傳統系統許可相關的成本,但可能沒有供應商支持或容量。而專有的DBMS選項一般會爲客戶提供適當的支持系統。編程語言
從功能上講,這兩種類型的數據庫大體相同。下面讓咱們看看四個常見關係數據庫開源選項的對比。ide
MySQL是由甲骨文支持的雙重許可軟件,它具備開源社區版和多個付費選項。十多年來,它一直是最受歡迎的開源數據庫選項之一。這種受歡迎程度意味着有不少第三方工具和外部文檔,讓你能夠儘量輕鬆地使用此選項。函數
MySQL開發人員在建立該數據庫時優先考慮速度,目前MySQL仍然被普遍認爲是最快的數據庫選項之一。除速度外,MySQL還有腳本幫助提升用戶數據庫的安全性。受支持的編程語言包括C / C ++、Java、Python和Ruby等。工具
MySQL的缺點在於其雙重許可的性質。某些功能和插件僅在專有版本中可用,對於尋求真正開源選項的企業而言,可能會感到沮喪。除此以外,MySQL仍然是數據管理的臨界標準。只要企業不須要100%兼容SQL,企業就可使用此數據庫並指望得到穩定的結果。這個DBMS的設計者選擇以速度爲重點來構建MySQL,而不是遵循179個功能的完整SQL標準。大數據
各行各業的企業都愈來愈多開始部署PostgreSQL,這個開源的對象關係數據庫系統已經存在30多年。操作系統
PostgreSQL在可靠性和數據完整性方面享有盛譽,而且自2001年以來,它一直符合ACID。該數據庫支持多種編程語言,例如.Net、C / C ++、Java、Python等。
對於熟悉MySQL的企業,PostgreSQL提供相似的體驗。從技術上講,MySQL是開源數據庫,但如今它擁有專有云源模塊(在甲骨文管理下)。這使一些開源開發人員開始尋找新的選項,而最類似選項應該是PostgreSQL。
該數據庫包含MySQL不具有的功能。例如,表繼承,該功能使表可存在於繼承爲主的非循環圖中,以及函數重載,該功能使一個以上的函數可具備相同的SQL名稱,只要它們採用的參數不一樣。
不論其規模或所在行業,任何企業均可以使用PostgreSQL,由於它可以處理複雜的查詢和大數據集。若是你的企業但願將其部署用於複雜的分析過程,則很是適合使用PostgreSQL。而PostgreSQL的缺點在於,並行化和集羣等高級工具將須要第三方插件。
另外一個首選的開源選項是MariaDB,由MySQL的原始開發人員開發。該數據庫支持多種編程語言,包括C / C ++、Java、Perl和Python等。
當你使用MariaDB時,你會看到頻繁的安全發佈,以及開發人員對維護其DBMS安全的承諾。除了對安全性的通常承諾外,開發人員還保證MariaDB將保持開源。
與PostgreSQL類似,MariaDB可兼容從MySQL遷移,並可支持MySQL中經常使用的編程語言。這使尋求變動的企業更容易過渡。最重要的是,MariaDB能夠運行WordPress。
MariaDB的缺點在於,沒法保證會很快發佈進一步的更新和版本,並且它缺少內置支持。
SQLite多是目前世界上使用最普遍的數據庫引擎。SQLite普遍應用在手機、大多數計算機、以及無數的應用程序中,它很常見,但它針對的問題與MySQL或PostgreSQL略有不一樣。該DBMS支持多種編程語言,包括C / C ++、Java和Python等。
對於在網絡邊緣擁有小型數據庫或設備的企業,SQLite很是適合。SQLite能夠跨系統部署,併爲單個應用程序和設備提供本地數據存儲。SQLite在企業級別的缺點在於,人們對其目的的誤解。它並不旨在與本文列出的較大選項的功能和特性相匹配,而且可能會使尋求高可擴展性的用戶失望。若是你須要處理大量數據,則SQLite不是你的最佳選擇。
那些須要多個用戶具備特殊訪問權限的應用程序也不適合使用SQLite,由於SQLite能夠在普通磁盤文件上讀寫,這意味着惟一適用的訪問權限是底層操做系統中包含的常見權限。