MongoDB 一直是最流行的 NoSQL,而根據(jù) DB-Engines Ranking 最新的排行,時(shí)下 MongoDB 已經(jīng)擊敗 PostgreSQL 躍居數(shù)據(jù)庫總排行的第四位,僅次于 Oracle、MySQL 和 Microsoft SQL Server,此文中總結(jié)了如何對 MongoDB 進(jìn)行性能調(diào)優(yōu).
大家在使用MongoDB的時(shí)候有沒有碰到過性能問題呢?這里總結(jié)了MongoDB性能優(yōu)化的五個(gè)步驟,希望能夠有所幫助。
第一步:找出慢語句
一般來說查詢語句太慢和性能問題瓶頸有著直接的關(guān)系,所以可以用MongoDB的性能分析工具來找出這些慢語句:
db.setProfilingLevel(1, 100);
第二步:使用explain分析
通過使用explain來對這些慢語句進(jìn)行診斷。此外還可以mtools來分析日志。
第三步:創(chuàng)建索引
分析完之后需要?jiǎng)?chuàng)建新的索引(index)來提升查詢的性能。別忘了在MondoDB中可以在后臺(tái)創(chuàng)建索引以避免collections 鎖和系統(tǒng)崩潰。
第四步:使用稀疏索引來減少空間占用
如果使用sparse documents,并重度使用關(guān)鍵字$exists,可以使用sparse indexes來減少空間占用提升查詢的性能。
第五步:讀寫分離
如果讀寫都在主節(jié)點(diǎn)的話,從節(jié)點(diǎn)就一直處在空置狀態(tài),這是一種浪費(fèi)。對于報(bào)表或者搜索這種讀操作來說完全可以在從節(jié)點(diǎn)實(shí)現(xiàn),因此要做的是在connection string中設(shè)置成secondarypreferred。
小總結(jié)
這些方法雖然能夠起一定的作用,但最主要的目的還是為架構(gòu)上的提升爭取點(diǎn)時(shí)間罷了。
好了,以上所述就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)MongoDB 進(jìn)行性能優(yōu)化有所幫助。
您可能感興趣的文章:- MongoDB優(yōu)化心得分享
- 淺析Mongodb性能優(yōu)化的相關(guān)問題
- Mongodb索引的優(yōu)化
- MongoDB查詢性能優(yōu)化驗(yàn)證及驗(yàn)證
- MongoDB性能優(yōu)化及監(jiān)控
- MongoDb優(yōu)化指南