Create your own awesome maps

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account?
Log In

MongoDB by Mind Map: MongoDB
0.0 stars - reviews range from 0 to 5

MongoDB

程式

connection

設定, 如果有做 RS 或多台 server 需要在呼叫 conneciton 的寫入 server 連線資訊

Pooling, 新版好像拿掉了

Read

Read Preferences, 有做 RS 要注意, PRIMARY, default 只能讀 RS 的 primary, PRIMARY_PREFERRED, 大部份使用 primary,連不到才連 secondary, SECONDARY, 只讀 second, SECONDARY_PREFERRED, 大部份讀 second,連不到才連 primary, NEAREST, 隨機存取一個在 ping 15ms 以下的 primary or secondary

index 預設是學習機制,所以 query 不一定會使用到 index (學會就會一直用),可以使用 hint 強制使用建立的索引

Write

Write Concerns, Unacknowledged {w:0}, 寫入時,不等待 server 回應, Acknowledged {w:1}, 寫入時,會等待 server 回應,僅等待到寫入 memory, Journaled {w:1, j:true}, 寫入時,會等待 server 回應,除寫入 memory 也等到寫入 Journal log 用於確保 memory 的資料能寫入 disk, Replica Acknowledged {w: n}, n=2~n, n 表示等 n-1 台 second 寫入完成, 寫入時,等待 server 回應,n=2 表示除 primary server 需等待一台 secondary 寫入完成後,server 才會回應

update, Upsert = true, 如果 update 的資料不在時,會新增一筆資料

DB 本身

資料結構設定

document base, 儘量不要用在多個 collection 有資料關係查詢上

index

Page Faults, 提升 page hit, 建立 index, 移除用不到的 Index, 提升 memory

使用 explain 可以解釋查詢是否使用到 index

Index type, Default _id, 預設為 _id 建 index, Single Field, 單一欄位 index, Compound Index, 多欄位 index, 需注意這兩個問題,可能會使 index 失效, Sort Order, Prefixes, Multikey Index, 可以針對 array 的值做 index, 這幾個沒玩過, Geospatial Index, 優化跟 Geospatial 相關的 index, Text Indexes, 文字內容用的 index,可以使用 text search (可能還沒到 full-text search), Hashed Indexes, 用來做 sharding

Index Properties, Unique Indexes, 是否唯一值, Sparse Indexes, 該資料如果沒有該欄位,會被勿略,不建 index, TTL Indexes, 可以針對 timeout 的資料,自動 remove 的 index,可以解決在大資料量下 remove cost 很大的問題

版本

v 2.8 以前地雷, Database Level Lock, 一個 database 建一個 collection

v 3.0, 使用 WiredTiger Storage Engine, 實現 Document Level Locking

multi read

Sharding, Replication

Replication

other

pretty, 輸出資料的好閱讀模式