現今有越來越多的國際企業,例如:Adobe、Cisco、ebay、Facebook、Google等,都是MongoDB的使用者。這些企業為什麼選擇使用MongoDB來取代MySQL?MongoDB的特性是什麼?在不同雲端平台上的應用,能帶來哪些好處?現在就讓我們來為你一一解惑!
MongoDB 是什麼?
MySQL與MongoDB都是開源的常用資料庫,兩者採用不同的資料庫設計方式,有各自的優缺點,關鍵看用在解決什麼問題。MySQL是傳統的關聯式資料庫,而MongoDB則是非關聯式資料庫,是一種文件導向(Document-oriented database)的資料庫管理系統。在選擇使用MongoDB資料庫之前,先帶你來認識什麼是關聯式資料庫(RDBMS)與非關聯式資料庫(NoSQL)。
關聯式資料庫(RDBMS)
關聯式資料庫(RDBMS)簡單來說,就是資料之間具有明確相互關聯的特性。透過SQL(Structured Query Language)語言在資料庫裡進行新增、查詢、更新和刪除資料等操作,同時也能建立和修改資料庫模式。資料表需預先設定好架構(Schema),以及需預先定義好資料表之間的關係,使資料之間有明確的關聯。
由於關聯式資料庫須事先設計好架構,上線後如要進行欄位變更便會相當麻煩,若資料量龐大,變更Schema更是工程浩大。因此,對於已經有明確的資料格式,並預計未來不會有大幅度的變更,且更著重在資料操作的準確性與一致性(ACID),則可考慮選擇使用關聯式資料庫,例如:MySQL。
非關聯式資料庫(NoSQL)
非關聯式資料庫(NoSQL)的意思是「Not Only SQL」,指的是不限定為關聯式資料庫的資料庫管理系統,以混用關聯式資料庫和非關聯式資料庫來達到最佳的儲存效果。NoSQL資料庫沒有Schema架構,也就是所謂的Schema-Free,可自由定義資料文件(Document)的結構,以及自由新增欄位。
由於非關聯式資料庫不需事先定義資料的Schema及資料之間的關聯,對於資料格式不確定,希望保留未來可以彈性調整的空間,且資料之間沒有複雜的關聯,較著重在快速讀取資料與可用性,則可考慮選擇使用非關聯式資料庫,例如:MongoDB。
MongoDB 5大特色報你知!
MongoDB使用的是文件導向的儲存概念,是一種靈活、易於擴展、高效能的NoSQL資料庫,它提供了可以跟SQL相比的Query Language(查詢語言),同時也是Open Source的NoSQL DB,本身用C++語言撰寫而成,在許多場景下可用於替代傳統的關聯式資料庫儲存方式。MongoDB的特點主要有以下5大項:
- 高效能處理大數據:MongoDB可以處理T級量的資料庫,可將眾多資料庫串聯後,交給大數據,例如:Cloudera等去分析。
- 提供高可用性架構:MongoDB的複製工具(稱為副本集)有自動故障轉移功能,提供資料的高可用性(High Availability)。
- 無限制的水平擴充:藉由資料分片(Sharding)功能來達到水平式擴充,提高MongoDB的儲存空間與效能。
- 新增欄位自由靈活:MongoDB擁有非常彈性的Schema,不需事先創建表格,數據可直接寫入並自由添加欄位。
- 查詢語言功能強大:MongoDB支援豐富的查詢語言以支援讀寫操作(CRUD),並支持聚合和其它現代用例,例如:地理搜索、圖形搜索、文本搜索。
MongoDB 在2大雲端平台應用的好處
AWS(Amazon Web Services)
-
提供 Quick Starts技術,能以快速、方便且可靠的方式部署MongoDB。
-
透過 AWS CloudFormation範本自動進行部署,簡化在AWS上的佈建流程。
GCP(Google Cloud Platform)
-
可與 Cloud Key Management Service(金鑰管理服務,簡稱KMS)整合,將機密資訊存入KMS中,保障金鑰安全。
-
藉由 Snapshot快照功能,將任一時間點的系統狀態與資料記錄下來,將來可輕鬆迅速進行還原。