在現(xiàn)代企業(yè)技術(shù)世界里,開源軟件已牢固地確立了自己作為不可忽視的,最大力量之一的地位。由于開源運(yùn)動(dòng)的出現(xiàn),推動(dòng)了幾十年來的一些最著名的技術(shù)發(fā)展。
不難理解為什么:盡管基于Linux的開源網(wǎng)絡(luò)標(biāo)準(zhǔn)可能不像專有選項(xiàng)那樣受歡迎,但這是來自不同制造商的智能設(shè)備可以相互通信的原因。另外許多人同意,開源開發(fā)所產(chǎn)生的應(yīng)用程序要優(yōu)于專有的應(yīng)用程序,這就是為什么有可能使用開源數(shù)據(jù)庫(kù)開發(fā)您喜歡的工具(無論是開源軟件還是專有軟件)的原因之一。
像任何其他類別的軟件一樣,開源數(shù)據(jù)庫(kù)管理系統(tǒng)的功能和特性可能會(huì)相差很大。簡(jiǎn)而言之,并非所有開源數(shù)據(jù)庫(kù)管理系統(tǒng)都是平等的。如果要為公司選擇一個(gè)開放源數(shù)據(jù)庫(kù),則必須選擇一個(gè)用戶友好,可以隨組織發(fā)展并提供足夠安全功能的數(shù)據(jù)庫(kù)。
考慮到這一點(diǎn),我們對(duì)開源數(shù)據(jù)庫(kù)及其各自的優(yōu)缺點(diǎn)進(jìn)行了概述,但是很抱歉,我們不得不省略一些最常用的數(shù)據(jù)庫(kù)。值得注意的是,MongoDB最近更改了其許可模式,因此它不再是真正的開源。從業(yè)務(wù)角度來看,此決定可能是合理的,因?yàn)镸ongoDB已成為事實(shí)上的數(shù)據(jù)庫(kù)托管解決方案,已有近27,000家公司使用它,但這也意味著MongoDB不再被視為真正的開源系統(tǒng)。
此外,自從收購(gòu)MySQL以來,Oracle幾乎殺死了該項(xiàng)目的開源性質(zhì),可以說,幾十年來,它一直是開源數(shù)據(jù)庫(kù)的首選。但是,這為其他真正的開源數(shù)據(jù)庫(kù)解決方案提出了挑戰(zhàn)的空間。
PostgreSQL
沒有PostgreSQL的開源數(shù)據(jù)庫(kù)的清單是不完整的,PostgreSQL一直是各種規(guī)模企業(yè)的首選解決方案。甲骨文收購(gòu)MySQL可能在當(dāng)時(shí)具有良好的商業(yè)意義,但是云存儲(chǔ)的興起意味著數(shù)據(jù)庫(kù)已逐漸受到開發(fā)人員的青睞。
盡管PostgreSQL已經(jīng)存在了一段時(shí)間,但MySQL的相對(duì)衰落使它成為最常用的開源數(shù)據(jù)庫(kù)的有力競(jìng)爭(zhēng)者。由于它的工作原理與MySQL非常相似,因此喜歡開源軟件的開發(fā)人員正在大量轉(zhuǎn)換到PostgreSQL。
優(yōu)點(diǎn)
到目前為止,PostgreSQL最常被提及的優(yōu)勢(shì)是其中央算法的效率,這意味著它的性能優(yōu)于許多被宣傳為更高級(jí)的數(shù)據(jù)庫(kù)。如果您正在使用大型數(shù)據(jù)集,否則I / O進(jìn)程可能成為瓶頸。
它也是周圍最靈活的開源數(shù)據(jù)庫(kù)之一,您可以使用多種服務(wù)器端語言編寫函數(shù):Python,Perl,Java,Ruby,C和R。
作為最常用的開源數(shù)據(jù)庫(kù)之一,PostgreSQL的社區(qū)支持是其中最好的。
缺點(diǎn)
PostgreSQL在處理大型數(shù)據(jù)集方面的效率眾所周知,但是對(duì)于較小的數(shù)據(jù)庫(kù)有更快的工具可用。
盡管它的社區(qū)支持非常好,但是PostgreSQL的核心文檔仍可以改進(jìn)。
如果您習(xí)慣于并行化和集群化之類的高級(jí)工具,請(qǐng)注意,這些工具需要PostgreSQL中的第三方插件。雖然已經(jīng)計(jì)劃逐步將這些功能添加到主版本中,但是可能要幾年后才能將它們作為標(biāo)準(zhǔn)提供。
MariaDB
MariaDB是MySQL的真正開源發(fā)行版(在GNU GPLv2下發(fā)行)。它是在甲骨文收購(gòu) MySQL 之后創(chuàng)建的,當(dāng)時(shí)一些MySQL的核心開發(fā)人員擔(dān)心甲骨文會(huì)破壞其開源哲學(xué)。
MariaDB的開發(fā)目的是盡可能與MySQL兼容,同時(shí)替換幾個(gè)關(guān)鍵組件。它使用一個(gè)存儲(chǔ)引擎Aria,該引擎既充當(dāng)事務(wù)引擎又充當(dāng)非事務(wù)引擎。一些人甚至猜測(cè),在MariaDB出現(xiàn)分歧之前,Aria將在將來的版本中成為MySQL的標(biāo)準(zhǔn)引擎。
優(yōu)點(diǎn)
由于MariaDB 頻繁發(fā)布安全性,盡管這不一定意味著MariaDB更安全,但這確實(shí)表明開發(fā)社區(qū)非常重視安全性。
MariaDB的主要優(yōu)勢(shì)在于,它幾乎肯定會(huì)保持開源狀態(tài)并與MySQL高度兼容。這意味著從一個(gè)系統(tǒng)遷移到另一個(gè)系統(tǒng)的速度非??臁?/p>
由于這種兼容性,MariaDB還可以與MySQL常用的許多其他語言很好地兼容。這意味著更少的時(shí)間用于學(xué)習(xí)和調(diào)試代碼。
您可以使用MariaDB而不是MySQL 來安裝和運(yùn)行 WordPress,以獲得更好的性能和更豐富的功能集。按市場(chǎng)份額, WordPress是最受歡迎的CMS(為近一半的互聯(lián)網(wǎng)提供動(dòng)力),并且擁有活躍的開源開發(fā)者社區(qū)。將WordPress與MariaDB一起安裝時(shí),第三方主題和插件將按預(yù)期工作。
缺點(diǎn)
MariaDB有點(diǎn)過大。長(zhǎng)時(shí)間使用后,其中央IDX日志文件尤其會(huì)變得非常大,最終導(dǎo)致性能下降。
緩存是MariaDB可以使用工作的另一個(gè)領(lǐng)域,速度不如預(yù)期的快,這可能會(huì)令人沮喪。
盡管有最初的承諾,MariaDB不再與MySQL完全兼容。如果要從MySQL遷移,則需要重新編碼。
SQLite
由于許多流行的Web瀏覽器,操作系統(tǒng)和移動(dòng)電話采用了SQLite,因此SQLite可以說是世界上使用最廣泛的數(shù)據(jù)庫(kù)引擎。最初是作為MySQL的輕量級(jí)分支開發(fā)的,與許多其他數(shù)據(jù)庫(kù)不同,它不是客戶端服務(wù)器引擎,而是將完整的軟件嵌入每個(gè)實(shí)現(xiàn)中。
這創(chuàng)造了SQLite的主要優(yōu)勢(shì):在嵌入式或分布式系統(tǒng)上,每臺(tái)機(jī)器都承載數(shù)據(jù)庫(kù)的整個(gè)實(shí)現(xiàn)。因?yàn)樗鼫p少了系統(tǒng)間調(diào)用的需要,所以可以大大提高數(shù)據(jù)庫(kù)的性能。
優(yōu)點(diǎn)
如果您希望構(gòu)建和實(shí)現(xiàn)一個(gè)小型數(shù)據(jù)庫(kù),那么SQLite 無疑是最好的選擇。它非常小,因此可以在各種嵌入式系統(tǒng)中實(shí)現(xiàn),而無需耗時(shí)的解決方法。
它的小尺寸使系統(tǒng)非???。雖然某些更高級(jí)的數(shù)據(jù)庫(kù)使用復(fù)雜的方法來節(jié)省效率,但SQLite卻采用了一種更為簡(jiǎn)單的方法:通過減少數(shù)據(jù)庫(kù)及其相關(guān)處理軟件的大小,可以處理的數(shù)據(jù)更少。
它的廣泛采用也意味著SQLite可能是其中最兼容的數(shù)據(jù)庫(kù)。如果您需要或計(jì)劃將系統(tǒng)與智能手機(jī)集成,則這一點(diǎn)尤其重要:只要存在第三方應(yīng)用程序,并且該系統(tǒng)在各種環(huán)境中都可以完美運(yùn)行,則該系統(tǒng)在iOS上是本機(jī)。
缺點(diǎn)
SQLite的體積很小,這意味著它缺乏大型數(shù)據(jù)庫(kù)中的某些功能。它缺乏內(nèi)置的數(shù)據(jù)加密功能。
盡管SQLite的廣泛采用和公開可用的代碼使SQLite易于使用,但它也增加了攻擊面。這是它最常被引用的缺點(diǎn)。在SQLite中經(jīng)常發(fā)現(xiàn)新的嚴(yán)重漏洞,例如最近稱為Magellan的遠(yuǎn)程攻擊媒介。
盡管SQLite的單文件方法具有速度優(yōu)勢(shì),但沒有簡(jiǎn)單的方法可以使用該系統(tǒng)實(shí)現(xiàn)多用戶環(huán)境。
哪個(gè)開源數(shù)據(jù)庫(kù)最好?
最終,您對(duì)開源數(shù)據(jù)庫(kù)的選擇將取決于您的業(yè)務(wù)需求,尤其取決于系統(tǒng)的大小。對(duì)于小型數(shù)據(jù)庫(kù)或使用量有限的數(shù)據(jù)庫(kù),請(qǐng)使用輕量級(jí)的解決方案:它不僅可以加快實(shí)施速度,而且系統(tǒng)的復(fù)雜程度較低,這意味著您將花費(fèi)更少的時(shí)間進(jìn)行調(diào)試。
對(duì)于大型系統(tǒng),尤其是在成長(zhǎng)中的企業(yè)中,請(qǐng)花一些時(shí)間來實(shí)現(xiàn)更復(fù)雜的數(shù)據(jù)庫(kù),例如PostgreSQL。通過消除隨著業(yè)務(wù)增長(zhǎng)而重新編碼數(shù)據(jù)庫(kù)的需求,最終可以節(jié)省您的時(shí)間。
-
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213897 -
SQL
+關(guān)注
關(guān)注
1文章
783瀏覽量
45181 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3929瀏覽量
66293
發(fā)布評(píng)論請(qǐng)先 登錄
SEGGER emFile支持大型數(shù)據(jù)庫(kù)
深入HarmonyOS NEXT開發(fā)中的ArkData操作SQLite數(shù)據(jù)庫(kù)
適用于SQLite的dbExpress數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序
SQLite數(shù)據(jù)訪問組件

適用于MySQL和MariaDB的Python連接器:可靠的MySQL數(shù)據(jù)連接器和數(shù)據(jù)庫(kù)

dbForge Studio for PostgreSQL:PostgreSQL數(shù)據(jù)庫(kù)多功能集成開發(fā)環(huán)境
Devart: dbForge Edge——您的終極多元數(shù)據(jù)庫(kù)解決方案

分布式云化數(shù)據(jù)庫(kù)有哪些類型
MySQL數(shù)據(jù)庫(kù)的安裝

關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型區(qū)別
數(shù)據(jù)庫(kù)事件觸發(fā)的設(shè)置和應(yīng)用
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—通過拼接數(shù)據(jù)庫(kù)碎片恢復(fù)SQLserver數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例

評(píng)論