選擇哪個資料庫將管理公司的所有資料可能是一個非常艱鉅的決定。這是一個會對你的員工、合作夥伴和客戶產生長期影響的問題。也許你已經在考慮一些供應商?別那麼快!你是否已權衡了 NoSQL 與傳統關聯式資料庫的優缺點?如果還沒有,你就來對地方了。讓我們開始吧!
關聯式資料庫管理系統(RDBMS)
除了 MySQL 之外,這類型的資料庫還包括 Oracle、SQL Server 和 PostgreSQL,它們具有悠久的歷史(自 1970 年代),並且制定了最佳做法並帶來最佳效能。例如,電腦科學家 E.F. Codd 制定了一套必須遵循的規則,將資料庫管理系統視為關聯式的結構。Codd 還在 1971 年引入了資料庫正規化的概念。資料庫正規化是以減少資料冗餘同時增進資料完整性的方式構建關聯式資料庫的程序。
優勢包括:
- 單元性、一致性、隔離性、持續性(Atomicity、Consistency、Isolation、Durability,ACID)標準符合性。ACID 標準符合性透過精確建議交易如何與資料庫互動,減少異常並保護資料庫的完整性。
- 你的資料以結構化的方式組織。堅固的結構組織使你可以更輕鬆地使用資料,因為你會知道在哪裡可以找到每項資料。請務必保留最新的結構描述圖。
- 由於 RDBMS 工具已經投放市場多年,因此它們傾向於提供高質量的支援、套裝產品和附加元件來管理這些資料庫。
RDBMS 的最主要問題是隨著資料庫的增長而需要擴展它們。你可以使用某些技術,例如分區化,但這些技術並非易於實施。
NoSQL 資料庫
NoSQL 資料庫是處理大量非結構化資料,或者當你的資料需求在一開始就不明確時的最佳選擇。在這種情況下,你可能無法開發使用關聯式資料據庫的結構描述。於是,與傳統關聯式資料據庫相比,NoSQL 資料庫提供了更多靈活性。
優點包括:
- CouchDB、MongoDB、Cassandra 和 HBase 等 NoSQL 資料庫旨在處理真正的巨量資料。實際上,你可以以幾乎沒有結構的資料庫儲存大量資料。此外,NoSQL 資料庫允許資料混合,以及允許不同類型的資料一起儲存。
- 只需要少許的努力,NoSQL 資料庫就能立即擴展多個資料中心。
當然,NoSQL 資料庫並非沒有缺點:
- NoSQL 社群缺乏 MySQL 使用者群的成熟度,因為它相對較新。雖然社群正在快速發展,但目前的情況是,在經驗豐富的使用者基礎上,像 MySQL 這樣的 SQL 資料庫管理系統仍然佔優。
- NoSQL 資料庫的一個主要問題是缺乏效能測試和分析的報告工具。在傳統的 RDBMS,你可以在其中找到各種監控工具來幫助調整執行個體的效能 - 例如,Navicat Monitor for MySQL/MariaDB。
- 缺乏標準化。NoSQL 的供應商傾向於使用自己的語法。這些語法可能很難掌握,並且通常與關聯式資料庫中使用的 SQL 不相容。
- NoSQL 資料庫通常會犧牲 ACID 標準符合性來提高處理速度和靈活性。在於你的需要,這可能會導致一些問題。
總結
正如在今天的文章中提及到的那樣,你選擇的資料庫類型在很大程度上取決於你將如何使用它以及要儲存的資料類型。在下一篇文章中,我們將比較每個類別的一些主要產品。