mongoDB's Optimization example

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

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数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
9月前
|
人工智能 NoSQL 关系型数据库
MongoDB全面推出MongoDB Relational Migrator
MongoDB Relational Migrator借助智能数据模型和代码推荐,可在不停机情况下,更快速、更轻松地从传统数据库技术迁移至MongoDB Atlas平台
|
NoSQL 大数据 MongoDB
MongoDB 中Aggregate使用与相关限制
MongoDB 中Aggregate使用与相关限制
204 0
MongoDB 中Aggregate使用与相关限制
|
NoSQL MongoDB
MongoDB:15-MongoDB- $isolate
MongoDB:15-MongoDB- $isolate
118 0
|
JSON JavaScript NoSQL
Invoice Application Backend Using ApsaraDB for MongoDB
In part three of this three-part tutorial, we will explore how to create the backend of a fully functional invoice application using ApsaraDB for MongoDB.
2760 0
Invoice Application Backend Using ApsaraDB for MongoDB
|
NoSQL
An Insight into MongoDB Sharding Chunk Splitting and Migration
Sharding is a method of data distribution across multiple machines. MongoDB uses sharding to support deployments with very large data sets and high throughput operations.
3049 0
|
存储 NoSQL 数据库
|
存储 NoSQL 分布式数据库