mongodb 性能调优几点事项

2012年4月2日 发表评论 阅读评论

来源:http://purpen.iteye.com/blog/1070541

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()强制索引或全表扫描.


转载请注明来自:[MSN Spaces]http://msn.shandian.biz/103.html

  1. 本文目前尚无任何评论.