天天看點

mongo小結和使用示例

1、存儲模式:面向集合存儲,模式自由; GridFS大檔案存儲(16M)

2、容災類型:主從複制(Replication)、Replica Set(自動選取主節點)、Sharding + Replica Set。

說明:mongo的Replication采用日志+批量更新方式,效率比直接更新高,Replication更新期間,從節點讀性能受影響(鎖機制導緻)。

3、支援CRUD 和 Fast In-Place Updates(文檔内更新)。

說明:Fast In-Place Updates支援快速更新文檔自身内容,對于不影響文檔大小的更新,效率比覆寫更新整個文檔效率高。為了支援改變文檔大小的文檔内更新,mongo内部采用padding,即采用比文檔略大的空間存儲文檔,當更新導緻文檔大小改變時,如改變大小不超過padding大小,就地更新,無須另外存儲。padding比例由mongo自身決定。

4、讀寫鎖,寫鎖優先

說明:mongo的鎖機制對于解釋mongo運作效率很重要。常見需要寫鎖的操作:insert、update、remove、eval(執行指令或腳本)、createIndex(建立索引需鎖定整個collection,資料大時,相當耗時)、replication、TTL的定期删除。

5、存儲機制:mmap file + 記憶體索引。完全由OS處理緩存。磁盤空間預配置設定(預設2G)。

說明:mongo将記憶體管理和緩存都交給OS。記憶體優先讓給索引使用。當索引大于記憶體大小時,将影響各種操作。當"工作集"(熱門資料)+索引 大于 記憶體時,查詢性能受影響。

6、集合類型:普通集合、TTL Collection(淘汰過期資料)、 Capped Collection(定長集合,FIFO)

7、同步:拷貝集合資料+日志同步

8、相對豐富的運維工具和shell用戶端

<a></a>