mongodb 性能調優幾點事項

mongoDB簡單優化示例:
1. 設計合理的數據結構,應用架構以及業務邏輯.
2. 合理使用索引
    如,當需要返回的記錄數比掃描的記錄數少得多時,結合collection的讀寫場景,考慮是否使用索引。
3. 限制輸出結果
    當需要返回的結果集非常大時,如無必要,考慮使用limit限制輸出.
4. 僅僅選擇需要輸出的列
    返回結果應該只包含需要返回的列,而不是所有列.這樣的話可以減少返回的字節數,節約帶寬.
5. $inc使用
    當更新的記錄中存在需要增加或減少的字段時,考慮使用$inc,效率比去除記錄,更新記錄再插回去會高很多.
> db.test.insert({"a":1})
> db.test.update({"a" : 1},{"$inc" : {"a" : 1}})
> db.test.find()
{ "_id" : ObjectId("4d297bfff59946c5070b2504"), "a" : 2 }
> db.test.update({"a" : 2},{"$inc" : {"a" : -1}})
> db.test.find()  
{ "_id" : ObjectId("4d297bfff59946c5070b2504"), "a" : 1 }

6. capped collection合理使用
讀寫效率都還可以,並且嚴格$natural.

7. 服務端代碼合理使用
使用服務端代碼可以減少網絡消耗(類似傳統數據庫的函數和存儲過程),提高效率.

使用profile分析:
mongoDB的profile是分析數據庫熱點,優化數據庫的非常好用的功能

優化count()
count()和offset()都是數據庫殺手,建索引是很有必要的(儘量減少scan)。

explain()和hint()
對於profile得到的執行代碼,使用explain分析,必要時可以使用hint()強制索引或全表掃描.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章