首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

MongoDB 入門核心概念:文件模型、BSON、邏輯結構、_id 主鍵與分散式部署

     編輯:DB2 教學

MongoDB 入門核心概念:文件模型、BSON、邏輯結構、_id 主鍵與分散式部署

MongoDB 以 C++ 開發,定位於介於關聯式與非關聯式之間,提供可擴展的高效能文件儲存。本文系統整理核心概念、資料模型、邏輯結構對照關聯式術語、_id 主鍵特性與部署建議。

一、定位與特性

  • 文件導向:資料以 BSON (Binary JSON) 文件儲存,結構鬆散,支援巢狀文件、陣列。
  • 無模式:同一集合內文件結構可不同,極靈活。
  • 強大查詢:語法近似物件查詢,支援索引、聚合管線、地理空間、文字搜尋。
  • 高可用:副本集自動故障轉移。
  • 水平擴展:分片叢集自動分散資料。
  • 多語言驅動:Java、Python、Node.js、Go、C#、PHP、Ruby 等。

二、邏輯結構三層對照

一個實例 → 多個 Database → 多個 Collection → 多個 Document。

三、_id 主鍵特性

  • 每個文件**必須**有 _id,缺失時驅動程式自動產生 ObjectId(12 位元組:時間戳+機器碼+進程碼+計數器)。
  • _id 型別不限,可為 ObjectId、字串、數值、UUID 等,但**不可為陣列**。
  • 分散式架構下**不支援自增整數主鍵**(無中央協調器),ObjectId 保證全域唯一且粗略有序。
  • 關聯式習慣用 BIGINT AUTO_INCREMENT,MongoDB 需改變思維接受 ObjectId 或自行維護全域唯一 ID(如 Snowflake 演算法)。

四、BSON 資料型別補充

MongoDB關聯式資料庫說明
DatabaseDatabase邏輯容器,一個實例可含多個 DB
CollectionTable文件群組,無 Schema 限制
DocumentRow鍵值對集合,對應一筆記錄
BSON 型別對應 JSON/說明
Double浮點數
StringUTF-8 字串
Document巢狀文件
Array陣列
Binary二進位資料
ObjectId12 位元組唯一識別碼
Booleantrue/false
DateUTC 毫秒時間戳
Nullnull
Regex正則運算式
JavaScriptJS 代碼
Symbol符號
JavaScript (with scope)JS 代碼含作用域
32-bit/64-bit Integer整數
Timestamp內部時間戳
MinKey/MaxKey比較邊界值

五、分散式檔案系統背景

MongoDB 可建立於分散式檔案系統(如 HDFS、ZDFS、GFS)之上,透過網路掛載儲存節點,實現計算與儲存分離、彈性擴容。生產部署常見架構:

  • 副本集:3-5 節點,一主多從,自動故障轉移。
  • 分片叢集:Mongos 路由 + Config Server + 多 Shard(各為副本集)。
  • 雲原生:Kubernetes Operator (MongoDB Enterprise Operator / Community Operator) 管理副本集與分片。

六、部署建議

  • 64 位元作業系統:32 位元限制單檔 2GB,嚴重限制資料量。
  • 檔案系統:XFS/EXT4,關閉 atime,啟用 noatime 掛載參數。
  • 透明大頁 (THP):關閉 (echo never > /sys/kernel/mm/transparent_hugepage/enabled),避免延遲尖峰。
  • ulimit:ulimit -n 64000、ulimit -u 64000。
  • NTP 時間同步:節點間時間差 < 1 秒,否則副本集選舉異常。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved