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

mongoDB's Optimization example相关推荐

  1. python操作mongodb数据库

    2019独角兽企业重金招聘Python工程师标准>>> 一.MongoDB 数据库操作 连接数据库 import pymongo conn = pymongo.Connection( ...

  2. Appboy 基于 MongoDB 的数据密集型实践

    摘要:Appboy 正在过手机等新兴渠道尝试一种新的方法,让机构可以与顾客建立更好的关系,可以说是市场自动化产业的一个前沿探索者.在移动端探索上,该公司已经取得了一定的成功,知名产品有 iHeartM ...

  3. mongodb 索引详解

    使用springboot连接mongodb的时候,涉及到索引的使用 举例: @Document(collection="book") //注释的是复合索引 //@CompoundI ...

  4. mongoDB配制及学习

    mongoDB配制及学习 http://blog.csdn.net/zj7758/article/details/7102996 ----------------------------------- ...

  5. python连接mongodb的库文件pymongo

    安装python连接mongodb的库文件pymongo # wget http://pypi.python.org/packages/source/p/pymongo/pymongo-2.6.tar ...

  6. mongodb mapreduce用法

    mongoDB的MapReduce简介         分类:            MongoDB2012-12-06 21:378676人阅读评论(2)收藏举报 MongoDB MapReduce ...

  7. MongoDB 聚合管道(Aggregation Pipeline)

    管道概念 POSIX多线程的使用方式中, 有一种很重要的方式-----流水线(亦称为"管道")方式,"数据元素"流串行地被一组线程按顺序执行.它的使用架构可参考 ...

  8. aws mongodb_使用Node.js,AWS Lambda和MongoDB Atlas进行无服务器开发

    aws mongodb This article was originally published on mongoDB. Thank you for supporting the partners ...

  9. MongoDB快速上手

    文章目录 1. MongoDB 相关概念 1.1 业务场景 1.2 MongoDB 简介 1.2.1 数据库 (databases) 管理语法 1.2.2 集合 (collection) 管理语法 1 ...

最新文章

  1. 吴琦:AI研究一路走到“黑”, 从VQA到VLN
  2. pythonint切片_python-切片
  3. RabbitMQ入门(四)-Routing(路由)
  4. api如何使用_记录API:技术作家和工程师指南
  5. axios代理跨域 cli4_跨域本质及解决办法
  6. (1)Uni-App入门
  7. Linux文件、文件内容搜索大全(find,grep命令)
  8. 注册测绘师 案例分析
  9. 为什么刚度阵对称?根本原因在于物理方程。知识点:矩阵微积分,物理方程
  10. ps把模糊图片变清晰
  11. win10电脑安装android,Android 10安装到PC电脑上运行 PC端安装Android 10
  12. zip、rar等密码破解软件
  13. 北航提出基于语言桥接的时空交互来进行准确指向性视频对象分割
  14. 知名网络漫画XKCD被黑客攻击,约56万用户数据被泄露
  15. 为什么要使用微信活码?
  16. 做表情包就能卖1亿刀,这事儿放在国内我是不信的
  17. 东华大学计算机考研大纲,2019年东华大学854计算机及软件工程专业基础综合考研初试大纲...
  18. 不懂编程?节点包来凑——Dynamo常用节点包推荐(下)
  19. win10远程桌面连接都有哪些工具
  20. 计算机课程可信计算,可信计算-表7.计算机学院(系、所)研究生课程简介.doc...

热门文章

  1. python连接hive kerberos_数据库开发实战教程:使用Python连接Kerberos的Presto
  2. php安装包进行安装吗,php的一键安装包有哪些php环境搭建
  3. linux redis 安装部署,Linux Redis安装部署
  4. 在linux中关于组的命令,linux 用户和组管理相关的命令
  5. 树莓派python开发教程_树莓派Raspberry开发从基础到进阶视频+设计资料超详细教程下载...
  6. 学java编程语言_对于零基础的人而言 该如何学Java编程语言
  7. python设置字符编码_python字符编码问题一则
  8. springboot 文件上传大小配置
  9. python open 函数漏洞_Python系列之——编写已知漏洞exp实现批量getshell
  10. centos7中firewall防火墙命令详解