mongoDB's Optimization example
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相关推荐
- python操作mongodb数据库
2019独角兽企业重金招聘Python工程师标准>>> 一.MongoDB 数据库操作 连接数据库 import pymongo conn = pymongo.Connection( ...
- Appboy 基于 MongoDB 的数据密集型实践
摘要:Appboy 正在过手机等新兴渠道尝试一种新的方法,让机构可以与顾客建立更好的关系,可以说是市场自动化产业的一个前沿探索者.在移动端探索上,该公司已经取得了一定的成功,知名产品有 iHeartM ...
- mongodb 索引详解
使用springboot连接mongodb的时候,涉及到索引的使用 举例: @Document(collection="book") //注释的是复合索引 //@CompoundI ...
- mongoDB配制及学习
mongoDB配制及学习 http://blog.csdn.net/zj7758/article/details/7102996 ----------------------------------- ...
- python连接mongodb的库文件pymongo
安装python连接mongodb的库文件pymongo # wget http://pypi.python.org/packages/source/p/pymongo/pymongo-2.6.tar ...
- mongodb mapreduce用法
mongoDB的MapReduce简介 分类: MongoDB2012-12-06 21:378676人阅读评论(2)收藏举报 MongoDB MapReduce ...
- MongoDB 聚合管道(Aggregation Pipeline)
管道概念 POSIX多线程的使用方式中, 有一种很重要的方式-----流水线(亦称为"管道")方式,"数据元素"流串行地被一组线程按顺序执行.它的使用架构可参考 ...
- aws mongodb_使用Node.js,AWS Lambda和MongoDB Atlas进行无服务器开发
aws mongodb This article was originally published on mongoDB. Thank you for supporting the partners ...
- MongoDB快速上手
文章目录 1. MongoDB 相关概念 1.1 业务场景 1.2 MongoDB 简介 1.2.1 数据库 (databases) 管理语法 1.2.2 集合 (collection) 管理语法 1 ...
最新文章
- 吴琦:AI研究一路走到“黑”, 从VQA到VLN
- pythonint切片_python-切片
- RabbitMQ入门(四)-Routing(路由)
- api如何使用_记录API:技术作家和工程师指南
- axios代理跨域 cli4_跨域本质及解决办法
- (1)Uni-App入门
- Linux文件、文件内容搜索大全(find,grep命令)
- 注册测绘师 案例分析
- 为什么刚度阵对称?根本原因在于物理方程。知识点:矩阵微积分,物理方程
- ps把模糊图片变清晰
- win10电脑安装android,Android 10安装到PC电脑上运行 PC端安装Android 10
- zip、rar等密码破解软件
- 北航提出基于语言桥接的时空交互来进行准确指向性视频对象分割
- 知名网络漫画XKCD被黑客攻击,约56万用户数据被泄露
- 为什么要使用微信活码?
- 做表情包就能卖1亿刀,这事儿放在国内我是不信的
- 东华大学计算机考研大纲,2019年东华大学854计算机及软件工程专业基础综合考研初试大纲...
- 不懂编程?节点包来凑——Dynamo常用节点包推荐(下)
- win10远程桌面连接都有哪些工具
- 计算机课程可信计算,可信计算-表7.计算机学院(系、所)研究生课程简介.doc...
热门文章
- python连接hive kerberos_数据库开发实战教程:使用Python连接Kerberos的Presto
- php安装包进行安装吗,php的一键安装包有哪些php环境搭建
- linux redis 安装部署,Linux Redis安装部署
- 在linux中关于组的命令,linux 用户和组管理相关的命令
- 树莓派python开发教程_树莓派Raspberry开发从基础到进阶视频+设计资料超详细教程下载...
- 学java编程语言_对于零基础的人而言 该如何学Java编程语言
- python设置字符编码_python字符编码问题一则
- springboot 文件上传大小配置
- python open 函数漏洞_Python系列之——编写已知漏洞exp实现批量getshell
- centos7中firewall防火墙命令详解