了解如何選擇最适合你的需求的開(kāi)源數據庫。
-- Sam Bocetta
在現代的企業級技術領域中(zhōng),開(kāi)源軟件已經成為空笑了一(yī)股不可忽視的重要力量。借助 開(kāi)源運動 (ope拍家n source movement)的東風,湧現除了許吧年多重大(dà)的技術突破。
個中(zhōng)原因顯而易見,盡管一(yī)些基于 分志Linux 的開(kāi)源網絡标準可能不如專有廠商(sh能也āng)的那麼受歡迎,但是不同制造商(shāng)的智能設備之間能夠互相通信術樂,開(kāi)源技術功不可沒。當然也有不少人認為影廠開(kāi)源開(kāi)發出來的應用比廠商(shāng)提供的産品東站更加好,所以無論如何,使用開(kāi)源數據庫進行開(kāi下但)發确實是相當有利的。
和其它類型的應用軟件一(yī)樣,不同的開(kāi)源數資頻據庫管理系統之間在功能和特性上可能會存在着比較大友光(dà)的差異。換言之, 不是所有的開(k日唱āi)源數據庫都是平等的 。因此,如果要為金民整個組織選擇一(yī)個開(kāi)源數據庫小森,那麼應該重點考察數據庫是否對用戶友好、是著銀否能夠持續适應團隊需求、是否能夠提供足夠電火安全的功能等方面的因素。
出于這方面考慮,我(wǒ)(wǒ)們在這篇文章中店冷(zhōng)對一(yī)些開(kāi)源數據庫進行了概述和優缺點對比。遺和的憾的是,我(wǒ)(wǒ)們必須忽略一(yī)些最常匠村用的數據庫。值得注意的是,MongoDB 最近更改了它的許朋腦可證,因此它已經不是真正的開(kāi)源慢窗産品了。從商(shāng)業角度來看,這個決定是很有意義的,因吃黑為 MongoDB 已經成為了數據庫托管實際上的解決方案河草, 約 27000 家公司 在使用它,但這也意味着城化 MongoDB 已經不再被視為真正的開海數(kāi)源産品。
另外(wài),自從 MySQL 被 O日線racle 收購之後,這個産品就已經不再分技具有開(kāi)源性質了,MySQL 可以說是數十年來首選的開(kāi離就)源數據庫。然而,這為其它真正的開(kāi)源數子些據庫解決方案提供了挑戰它的空間。
下(xià)面是三個值得考慮的開(kāi)源數據庫議笑。
沒有 PostgreSQL 的開(kāi)源數店業據庫清單肯定是不完整的。PostgreSQL 一(yī)直些外都是各種規模企業的首選解決方案。Oracle 對 MySQ廠分L 的收購在當時來說可能具有一(yī)定的商(shāng)業意義,但是随着雲從電存儲的日益壯大(dà), 開(kāi)發者對 MySQL 的依賴程度或許并爸綠不如以前那麼大(dà)了 。
盡管 PostgreSQL 不是一(yī)個最近幾年才面世的新産秒我品,但它卻是借助了 MySQL 相對衰落 的機會才逐漸成家術為最受歡迎的開(kāi)源數據庫之一(yī)。由于它和 MySQL 視草的工(gōng)作方式非常相似,因此很多熱衷于使用開(kāi)源軟化現件的開(kāi)發者都紛紛轉向 PostgreSQL。
目前 PostgreSQL 最顯著的優點是它的好金核心算法的效率,這意味着它的性能優于許多宣稱更先進數據理你庫。這一(yī)點在處理大(dà)型數據集的時候就可以很明顯地體輛下(tǐ)現出來了,否則 I/O 處理會成為瓶頸。
PostgreSQL 也是最靈活的開(kāi)源數據庫之一(y動低ī),使用 Python、Perl、Java、Ruby、C 或者 R 都姐關能夠很方便地調用數據庫。
作為最常用的幾個開(kāi)源數據庫之中靜妹(zhōng),PostgreSQL 的社區支持是做得最好的。
在數據量比較大(dà)的時候,PostgreSQL 的效率毋庸置疑是很高的,金廠但對于數據量較小(xiǎo)的情況,使用 PostgreSQL 就顯得不影哥如其它的一(yī)些工(gōng)具快了。
盡管擁有一(yī)個很優秀的社區支持,但 PostgreS亮我QL 的核心文檔仍然需要作出改進。
如果你需要使用并行計算或者集群化等高級工(g哥行ōng)具,就需要安裝 PostgreSQL 的腦去第三方插件。盡管官方有計劃将這些功能逐步添刀月加到主要版本當中(zhōng),但可能會需要再等待他對好幾年才能出現在标準版本中(zhōng)。
MariaDB 是 MySQL 的真正開(kāi)源的發行版本(在 GNU 會笑GPLv2 下(xià)發布)。在 Oracle 收技離購 MySQL 之後,MySQL 的一(yī資媽)些核心開(kāi)發人員(yuán)認為 Oracle 會破壞 MyS做區QL 的開(kāi)源理念,因此建立了 MariaDB 這個獨立的分視東(fēn)支。
MariaDB 在開(kāi)發過程中(zhōng)替換了 MySQ身水L 的幾個關鍵組件,但仍然盡可能地保持兼容 MySQL。Mar和紙iaDB 使用了 Aria 作為存儲引擎,這個存儲引擎既可路但以作為事務式引擎,也可以作為非事務式引擎。在 MariaDB 分亮劇(fēn)叉出來之前,就 有一(yī)些人推測 Aria 會成水舊為 MySQL 未來版本中(zhōng)的标準引擎。
由于 MariaDB 頻(pín)繁進行安全發布 ,很相雨多用戶選擇使用 MariaDB 而不選擇 MySQL校的。盡管這不一(yī)定代表 MariaDB 會比 MySQL 更加煙友安全,但确實表明它的開(kāi)發社區對安全性十師現分(fēn)重視。
有一(yī)些人認為,MariaDB 的主要優點就是它在堅持開(k很志āi)源的同時會與 MySQL 保持高度理船兼容,這就意味着從 MySQL 向 MariaDB 的遷移會微紅非常容易。
也正是由于這種兼容性,MariaDB 也可以和其近森它常用于 MySQL 的語言配合使用,因此自明從 MySQL 遷移到 MariaDB 之後,學習和調試代現學碼的時間成本會非常低。
你可以将 WordPress 和 MariaDB(視也而不是 MySQL) 配合使用 從而獲得更好的性能和更豐富的功能。Wo喝妹rdPress 是 最受歡迎的 内容管理系統(Content街如 Management System)(CMS),占據了一(yī高用)半的互聯網份額,并且擁有活躍的開(kāi)源開(k讀村āi)發者社區。各種第三方插件在 WordPress 和 MariaDB樂慢 配合使用時都能夠正常工(gōng)作。
MariaDB 有時會變得比較臃腫,尤其是它的 ID電姐X 日志(zhì)文件在長期使用之後會變得非常大(d的件à),最終導緻性能下(xià)降。
緩存是 MariaDB 的另一(yī)個工(gōng)作領域,并沒有期望姐姐中(zhōng)那麼快,這可能會讓人有所失望。
盡管 MariaDB 最初承諾兼容 My小鐘SQL,但目前 MariaDB 已經不是完全兼容 MySQL。如果要從書了 MySQL 遷移到 MariaDB,就需要額外(聽志wài)做一(yī)些兼容工(gōng)作。
SQLite 可以說是世界上實現最多的數據庫引擎,因為它被很多流行的 we員章b 浏覽器、操作系統和手機所采用。它最初是作司輛為 MySQL 的輕量級分(fēn)支所開(k謝錯āi)發的。SQLite 和很多其它的數據庫不同,它不采用客戶端-服務端的引農你擎架構,而是将整個軟件嵌入到每個實現當中(zhōng)。
這樣的架構讓 SQLite 擁有一(yī)個強大(dà)會分的優勢,就是在嵌入式系統或者分(fēn)布式系統中(zhōng),每台機器雜很都搭載了數據庫的整個實現。這樣的做法減少了系統間的調用,從而大(d做海à)大(dà)提高了數據庫的性能。
如果你需要構建和實現一(yī)個小(xiǎo)型數據庫,SQLite 可能是討站最好的選擇 。它小(xiǎo)而靈活,不需要費(fèi)工(g我算ōng)夫尋求各種變通方案,就可以在嵌入式系統中花土(zhōng)實現。
SQLite 體(tǐ)積很小(xiǎo輛玩),因此速度極快。其它的一(yī)些高級數據庫可能會使用複雜(zá)的視舞優化方式來提高效率,但SQLite 采用了一(yī)種更簡單的方法能河:通過減小(xiǎo)數據庫及其處理軟件的大(dà)小(xiǎo),離河以使處理的數據更少。
SQLite 被廣泛采用也導緻它可能是兼容性最高的數金工據庫。如果你希望将應用程序集成到智能手機上,這一(yī小算)點尤為重要:隻要是可以工(gōng)作于廣泛環境中(zhōng)的動友第三方應用程序,就可以原生(shēng)運行他些于 iOS 上。
SQLite 的體(tǐ)積小(xiǎo)意味着它缺少了很多其城來它大(dà)型數據庫的常見功能。例如數據加密就是 抵禦黑客攻擊 的和些标準功能,而 SQLite 卻沒有内置這個功能。
SQLite 的廣泛流行和源碼公開(kāi)使它易于使用一媽,但是也讓它更容易遭受攻擊。這是它最大(dà很男)的劣勢。SQLite 經常被發現高危的慢子漏洞,例如最近的 Magellan 。
盡管 SQLite 單文件的方式擁有速度上的優新厭勢,但是要使用它實現多用戶環境卻比較困難。
當然,對于開(kāi)源數據庫的選擇還是取決于業務的需求,錯知尤其是系統的體(tǐ)量。對于小(xiǎo)型數據庫或者綠來是使用量比較小(xiǎo)的數據庫,可以使用比較輕量級的解決方案,這樣不僅可女草以加快實現的速度,而且由于系統的複雜(zá)程度不算太高,花在樹還調試上的時間成本也不會太高。
而對于大(dà)型的系統,尤其是在成長性企業中(zhōng)醫子,最好還是花時間使用更複雜(zá)的數據庫(例如 PostgreSQL)綠化。這是一(yī)個磨刀不誤砍柴工(gōng)的選擇,能夠讓你不至于在後期再重民務新選擇另一(yī)款數據庫。