參考:comparing-in-memory-databases-redis-vs-mongodb
優(yōu)點(diǎn):
- 社區(qū)活躍,用戶較多,應(yīng)用廣泛
- 適合數(shù)據(jù)格式經(jīng)常變化的需求模型,擴(kuò)展字段很容易且不影響原有數(shù)據(jù)
- 自帶高可用,自動(dòng)主從切換(副本集)
- 比較好的適應(yīng)大數(shù)據(jù)量增長的需求
- MongoDB在內(nèi)存充足的情況下數(shù)據(jù)都放入內(nèi)存且有完整的索引支持,內(nèi)存資源豐富的話,MongoDB的查詢效率會(huì)快很多
缺點(diǎn):
- 復(fù)雜查詢(Join)MongoDB性能不佳
性能
引用https://cloud.tencent.com/developer/article/1005453
插入性能
- image.png
- MongoDB的Insert性能隨著線程數(shù)(小于128)的增加而增加,當(dāng)大于128時(shí),Insert性能開始逐漸出現(xiàn)明顯波動(dòng)和下降;
- 當(dāng)線程數(shù)量達(dá)到128時(shí),MongoDB的Insert性能達(dá)到峰值,約為19萬;
- 平均延遲隨線程數(shù)量的增加而增加,且增加速度越來越快;
Read / Update性能 VS 線程數(shù)
- 對(duì)百萬級(jí)數(shù)據(jù)的操作,MongoDB讀性能優(yōu)于寫性能,隨著寫的比重增加,吞吐率明顯減少,且系統(tǒng)延遲明顯增加;
- 只讀、讀多寫少、讀寫混合、讀少寫多,這四個(gè)場景均在線程數(shù)達(dá)到128時(shí)達(dá)到峰值,分別約為23萬、20萬、16萬、14萬;
- 隨著線程數(shù)的增加,寫比重越大,其吞吐率波動(dòng)性越大,越不穩(wěn)定,且當(dāng)線程數(shù)高于128時(shí),吞吐率下降越明顯,系統(tǒng)延遲增加越明顯(即MongoDB讀操作在數(shù)據(jù)量較少時(shí)穩(wěn)定性更強(qiáng));
- 對(duì)百萬級(jí)數(shù)據(jù)的操作,當(dāng)寫比重超過50%時(shí),吞吐率出現(xiàn)明顯下降,且隨線程數(shù)增加而越發(fā)明顯
