在現代企業技術世界裡,開源軟體已牢固地確立了自己作為不可忽視的,最大力量之一的地位。由於開源運動的出現,推動了幾十年來的一些最著名的技術發展。
不難理解為什麼:儘管基於Linux的開源網路標準可能不像專有選項那樣受歡迎,但這是來自不同製造商的智慧裝置可以相互通訊的原因。另外許多人同意,開源開發所產生的應用程式要優於專有的應用程式,這就是為什麼有可能使用開源資料庫開發您喜歡的工具(無論是開源軟體還是專有軟體)的原因之一。
像任何其他類別的軟體一樣,開源資料庫管理系統的功能和特性可能會相差很大。簡而言之,並非所有開源資料庫管理系統都是平等的。如果要為公司選擇一個開放源資料庫,則必須選擇一個使用者友好,可以隨組織發展並提供足夠安全功能的資料庫。
考慮到這一點,我們對開源資料庫及其各自的優缺點進行了概述,但是很抱歉,我們不得不省略一些最常用的資料庫。值得注意的是,MongoDB最近更改了其許可模式,因此它不再是真正的開源。從業務角度來看,此決定可能是合理的,因為MongoDB已成為事實上的資料庫託管解決方案,已有近27,000家公司使用它,但這也意味著MongoDB不再被視為真正的開源系統。
此外,自從收購MySQL以來,Oracle幾乎殺死了該專案的開源性質,可以說,幾十年來,它一直是開源資料庫的首選。但是,這為其他真正的開源資料庫解決方案提出了挑戰的空間。
PostgreSQL
沒有PostgreSQL的開源資料庫的清單是不完整的,PostgreSQL一直是各種規模企業的首選解決方案。甲骨文收購MySQL可能在當時具有良好的商業意義,但是雲端儲存的興起意味著資料庫已逐漸受到開發人員的青睞。
儘管PostgreSQL已經存在了一段時間,但MySQL的相對衰落使它成為最常用的開源資料庫的有力競爭者。由於它的工作原理與MySQL非常相似,因此喜歡開源軟體的開發人員正在大量轉換到PostgreSQL。
優點
到目前為止,PostgreSQL最常被提及的優勢是其中央演算法的效率,這意味著它的效能優於許多被宣傳為更高階的資料庫。如果您正在使用大型資料集,否則I / O程序可能成為瓶頸。它也是周圍最靈活的開源資料庫之一,您可以使用多種伺服器端語言編寫函式:Python,Perl,Java,Ruby,C和R。作為最常用的開源資料庫之一,PostgreSQL的社群支援是其中最好的。缺點
PostgreSQL在處理大型資料集方面的效率眾所周知,但是對於較小的資料庫有更快的工具可用。儘管它的社群支援非常好,但是PostgreSQL的核心文件仍可以改進。如果您習慣於並行化和叢集化之類的高階工具,請注意,這些工具需要PostgreSQL中的第三方外掛。雖然已經計劃逐步將這些功能新增到主版本中,但是可能要幾年後才能將它們作為標準提供。MariaDB
MariaDB是MySQL的真正開源發行版(在GNU GPLv2下發行)。它是在甲骨文收購 MySQL 之後建立的,當時一些MySQL的核心開發人員擔心甲骨文會破壞其開源哲學。
MariaDB的開發目的是儘可能與MySQL相容,同時替換幾個關鍵元件。它使用一個儲存引擎Aria,該引擎既充當事務引擎又充當非事務引擎。一些人甚至猜測,在MariaDB出現分歧之前,Aria將在將來的版本中成為MySQL的標準引擎。
優點
由於MariaDB 頻繁釋出安全性,儘管這不一定意味著MariaDB更安全,但這確實表明開發社群非常重視安全性。MariaDB的主要優勢在於,它幾乎肯定會保持開源狀態並與MySQL高度相容。這意味著從一個系統遷移到另一個系統的速度非常快。由於這種相容性,MariaDB還可以與MySQL常用的許多其他語言很好地相容。這意味著更少的時間用於學習和除錯程式碼。您可以使用MariaDB而不是MySQL 來安裝和執行 WordPress,以獲得更好的效能和更豐富的功能集。按市場份額, WordPress是最受歡迎的CMS(為近一半的網際網路提供動力),並且擁有活躍的開源開發者社群。將WordPress與MariaDB一起安裝時,第三方主題和外掛將按預期工作。缺點
SQLite
由於許多流行的Web瀏覽器,作業系統和行動電話採用了SQLite,因此SQLite可以說是世界上使用最廣泛的資料庫引擎。最初是作為MySQL的輕量級分支開發的,與許多其他資料庫不同,它不是客戶端伺服器引擎,而是將完整的軟體嵌入每個實現中。
這創造了SQLite的主要優勢:在嵌入式或分散式系統上,每臺機器都承載資料庫的整個實現。因為它減少了系統間呼叫的需要,所以可以大大提高資料庫的效能。
優點
如果您希望構建和實現一個小型資料庫,那麼SQLite 無疑是最好的選擇。它非常小,因此可以在各種嵌入式系統中實現,而無需耗時的解決方法。它的小尺寸使系統非常快。雖然某些更高階的資料庫使用複雜的方法來節省效率,但SQLite卻採用了一種更為簡單的方法:通過減少資料庫及其相關處理軟體的大小,可以處理的資料更少。它的廣泛採用也意味著SQLite可能是其中最相容的資料庫。如果您需要或計劃將系統與智慧手機整合,則這一點尤其重要:只要存在第三方應用程式,並且該系統在各種環境中都可以完美執行,則該系統在iOS上是本機。缺點
SQLite的體積很小,這意味著它缺乏大型資料庫中的某些功能。它缺乏內建的資料加密功能。儘管SQLite的廣泛採用和公開可用的程式碼使SQLite易於使用,但它也增加了攻擊面。這是它最常被引用的缺點。在SQLite中經常發現新的嚴重漏洞,例如最近稱為Magellan的遠端攻擊媒介。儘管SQLite的單檔案方法具有速度優勢,但沒有簡單的方法可以使用該系統實現多使用者環境。哪個開源資料庫最好?
最終,您對開源資料庫的選擇將取決於您的業務需求,尤其取決於系統的大小。對於小型資料庫或使用量有限的資料庫,請使用輕量級的解決方案:它不僅可以加快實施速度,而且系統的複雜程度較低,這意味著您將花費更少的時間進行除錯。
對於大型系統,尤其是在成長中的企業中,請花一些時間來實現更復雜的資料庫,例如PostgreSQL。通過消除隨著業務增長而重新編碼資料庫的需求,最終可以節省您的時間。