最新資訊
科技趨勢

雲端整合專家,提供全方位雲端顧問服務

科技趨勢

使用MongoDB前你需要知道的事情

使用MongoDB前你需要知道的事情

隨著網站內容越來越豐富的情況下,為了更方便的對資料進行管理,通常都會搭配資料庫的方式來開發。一般的資料庫都會具備著新增, 讀取, 刪除, 更新等功能,也就是俗稱的CRUD。

目前資料庫主要分成了兩大派系:關聯式資料庫(RDBMS)與非關聯式資料庫(NoSQL)。

關聯式資料庫(RDBMS) v.s 非關聯式資料庫(NoSQL)

關聯式資料庫(RDBMS)

在關聯式的資料庫(RDBMS)中, 都存在著所謂的Schema。在要新增資料前,就必須預先定義好表格中的格式,以後新增資料時,就必須按照當初建立好的表格來新增資料。舉例來說,今天要建立一個書本的表格,裡面可能就會有頁數, 標題, 內文這三個欄位。在新增書本的時候,就只能照定義好的欄位來填入對應的資料。

但今天,如果未來新增書本時,希望可以再多加銷售數量的欄位,就必須要修改整個表格的Schema,才能夠做這個修改,雖然比較嚴謹的要求下,比較不會發生資料不一致的情況,但也在修改表格時,帶來了一些不便。

目前市面上比較常見的關聯式資料庫有: MySQL, PostgreSQL, MS SQL

非關聯式資料庫(NoSQL)

在非關聯式資料庫(NoSQL)中,取消了關聯式資料庫的Schema的限制,在預設的情況下,會將資料儲存為 JSON的方式。在遇到未來的某些資料需要有不同的欄位時,就能夠省略Schema的限制,直接針對那筆資料進行欄位的新增。

目前市面上比較常見的關聯式資料庫有: MongoDB

MongoDB的特色

  • 水平擴充:藉由新增節點的方式,提高MongoDB的儲存空間與效能。
  • 高可用性:同一筆資料會寫入到多個節點上,預防單個節點故障。
  • 設計靈活:不需要預先將Schema定義好。隨時可以修改。
  • 讀取快速:寫入資料時在記憶體完成即回傳寫入成功的資訊,藉由非同步機制寫入硬碟。

可以選擇MongoDB的應用場景

  • 在Schema還未完全明朗時可以藉由NoSQL的高彈性快速製作出成品
  • 資料彼此之間的關聯沒有那麼複雜
  • 藉由MongoDB進行部分資料的讀取,分散關聯式資料庫的負載
  • 讀取Json格式為主的應用程式

MongoDB在不同雲端平台的好處與壞處

AWS

  • 提供quick start的方式,快速方便且靈活的方式部署MongoDB
    • new vpc
    • existing vpc
  • 可以藉由AWS CloudFormation templates來自動化部署

GCP

  • 可以與Cloud Key Management Service (KMS)整合,將私密的資訊存入KMS中
  • 可以與Cloud Provider Snapshots 整合快速進行還原