MONGODB 讀書筆記
1. MONGODB不支援truncate操作,如果想快速刪除一個集合的資料,只能drop後重建集合、索引。
2. 如果想改變oplog的大小現在還比較複雜,官方完全能做一個命令介面,一個操作就可以實現。
3. MONGODB提供了資料預熱方法,還不錯。搜尋MONGODB TOUCH瞭解這一內容。(db.runCommand({"touch" : "bc", "data" : true, "index" : true}) )
4. 如果RS裡的一個節點啟動的時候發現自身的OPLOG裡沒有任何內容,那麼這個節點會做全量同步,必須保證到OPLOG裡有一個記錄(正常情況下總會有)。
5. MONGODB的初始化同步可能會極大的干擾到同步源上的正常的WORKING SET。可以考慮用備份來恢復。
6. 叢集成員越多,選舉的過程可能會越長。特別是網路擁堵,伺服器LOAD過大的情況下。
7. RS的仲裁者角色相對於正常的備份節點來說並不會加速選舉的過程。他就是一個RS的選舉角色,在伺服器資源不夠的情況下,可以用它來打破平均數的情況,來滿足最大數的原則。
8. MONGODB的預分配資料檔案過程稍顯複雜,MONGODB官方可以考慮做一個簡單的介面,一步實現。
9. MONGODB中的RS回滾機制個人認為還不錯,提供了一個回滾檔案,由使用者決定來下一步操作。
10. MONGODB的選舉過程必須遵循大多數原則。一個備選節點如果遭遇任何一個否決票,選舉都會取消,重新選舉。
11. 主節點DOWN後,如果有一個存活的備份節點優先順序較高,那麼它一定會被選為主節點:如果資料不夠新,會開始從其他節點複製,直到它到最新。
12. 先資料修改,後OPLOG,主備節點都是如此。這意味著延遲備份節點會延遲一段時間的OPLOG。?而不是先接受OPLOG然後等待複製。?
13. 如果想避免丟資料,避免回滾,可以透過RS的大多數方案來解決,透過getlasterror的w的 majority設定來規避。(個人認為不能完全避免,因為大多數操作不是一個原子操作)。
14. MONGO裡有ORACLE裡pctfree的東西,不過是個動態調整的東西,不可控。如果能大概確認一個文件的長度,可以在初始建立時候預分配一個虛擬欄位把位先佔了,後面更新時候移除這個欄位。
15. MONGODB裡對於隨機值插入操作,列上索引分裂方式是5:5方式。有時候會發現隨機插入列上的索引過大。不過ORACLE也是這樣做的。
16. MONGODB執行情況下,echo 3到> /proc/sys/vm/drop_caches不會釋放MONGODB的記憶體,必須關閉MONGO才可以。
17. journal的出現讓mongodb的 repair和mongdb.lock不再有用。
18. mongostat裡的idx miss%代表是索引的entry有多少沒命中,不是代表有多少沒走索引執行計劃。
19.mongodb的複製可以做到併發多執行緒,不過是集合級別的(如果你的DB裡只有一個集合,那麼只能呵呵了,只能還是單執行緒複製,與MYSQL 5.6的多執行緒複製一樣)
2. 如果想改變oplog的大小現在還比較複雜,官方完全能做一個命令介面,一個操作就可以實現。
3. MONGODB提供了資料預熱方法,還不錯。搜尋MONGODB TOUCH瞭解這一內容。(db.runCommand({"touch" : "bc", "data" : true, "index" : true}) )
4. 如果RS裡的一個節點啟動的時候發現自身的OPLOG裡沒有任何內容,那麼這個節點會做全量同步,必須保證到OPLOG裡有一個記錄(正常情況下總會有)。
5. MONGODB的初始化同步可能會極大的干擾到同步源上的正常的WORKING SET。可以考慮用備份來恢復。
6. 叢集成員越多,選舉的過程可能會越長。特別是網路擁堵,伺服器LOAD過大的情況下。
7. RS的仲裁者角色相對於正常的備份節點來說並不會加速選舉的過程。他就是一個RS的選舉角色,在伺服器資源不夠的情況下,可以用它來打破平均數的情況,來滿足最大數的原則。
8. MONGODB的預分配資料檔案過程稍顯複雜,MONGODB官方可以考慮做一個簡單的介面,一步實現。
9. MONGODB中的RS回滾機制個人認為還不錯,提供了一個回滾檔案,由使用者決定來下一步操作。
10. MONGODB的選舉過程必須遵循大多數原則。一個備選節點如果遭遇任何一個否決票,選舉都會取消,重新選舉。
11. 主節點DOWN後,如果有一個存活的備份節點優先順序較高,那麼它一定會被選為主節點:如果資料不夠新,會開始從其他節點複製,直到它到最新。
12. 先資料修改,後OPLOG,主備節點都是如此。這意味著延遲備份節點會延遲一段時間的OPLOG。?而不是先接受OPLOG然後等待複製。?
13. 如果想避免丟資料,避免回滾,可以透過RS的大多數方案來解決,透過getlasterror的w的 majority設定來規避。(個人認為不能完全避免,因為大多數操作不是一個原子操作)。
14. MONGO裡有ORACLE裡pctfree的東西,不過是個動態調整的東西,不可控。如果能大概確認一個文件的長度,可以在初始建立時候預分配一個虛擬欄位把位先佔了,後面更新時候移除這個欄位。
15. MONGODB裡對於隨機值插入操作,列上索引分裂方式是5:5方式。有時候會發現隨機插入列上的索引過大。不過ORACLE也是這樣做的。
16. MONGODB執行情況下,echo 3到> /proc/sys/vm/drop_caches不會釋放MONGODB的記憶體,必須關閉MONGO才可以。
17. journal的出現讓mongodb的 repair和mongdb.lock不再有用。
18. mongostat裡的idx miss%代表是索引的entry有多少沒命中,不是代表有多少沒走索引執行計劃。
19.mongodb的複製可以做到併發多執行緒,不過是集合級別的(如果你的DB裡只有一個集合,那麼只能呵呵了,只能還是單執行緒複製,與MYSQL 5.6的多執行緒複製一樣)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-1075504/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 讀書筆記...筆記
- 讀書筆記筆記
- 《讀書與做人》讀書筆記筆記
- Cucumber讀書筆記筆記
- 散文讀書筆記筆記
- HTTP 讀書筆記HTTP筆記
- CoreJava讀書筆記-------Java筆記
- flask讀書筆記Flask筆記
- Vue讀書筆記Vue筆記
- Qt讀書筆記QT筆記
- Node讀書筆記筆記
- SAP讀書筆記筆記
- YII讀書筆記筆記
- iptables 讀書筆記筆記
- Makefile 讀書筆記筆記
- mysql讀書筆記MySql筆記
- 鎖讀書筆記筆記
- dataguard讀書筆記筆記
- 讀書筆記3筆記
- 讀書筆記2筆記
- postgres 讀書筆記筆記
- MONGODB 讀書摘要MongoDB
- 《重構》讀書筆記筆記
- webpackDemo讀書筆記Web筆記
- PMBook讀書筆記(一)筆記
- Effective Java 讀書筆記Java筆記
- js高程讀書筆記JS筆記
- “Docker Practice”讀書筆記Docker筆記
- FPGA讀書筆記5FPGA筆記
- FPGA讀書筆記3FPGA筆記
- FPGA讀書筆記4FPGA筆記
- FPGA讀書筆記2FPGA筆記
- FPGA讀書筆記1FPGA筆記
- 《精通JavaScript》讀書筆記JavaScript筆記
- 讀書筆記摘錄:筆記
- 《矽谷之父》讀書筆記筆記
- 重構讀書筆記筆記
- 讀書筆記之一筆記