1.在查询条件、排序条件、统计条件的字段上选择创建索引,可以显著提高查询效率。
2.用$or时把匹配最 多 结果的条件放在最前面,用$and时把匹配最 少 结果的条件放在最前面。
3.使用limit()限定返回结果集的大小,减少数据库服务器的资源消耗,以及网络传输的数据量。
4.尽量少用$in,而是分解成一个一个的单一查询。尤其是在分片上,$in会让你的查询去每一个分片上查一次,如果实在要用的话,先在每个分片上建索引。
5.尽量不用模糊匹配查询,用其它精确匹配查询代替,比如$in、$nin。
6.查询量大、并发大的情况,通过前端加缓存解决。
7.能不用安全模式的操作就不用安全模式,这样客户端没必要等待数据库返回查询结果以及处理异常,快了一个数量级。
8.MongoDB的智能查询优化,判断粒度为query条件,而skip和limit都不在其判断之中,当分页查询最后几页时,先用order反向排序。
9.尽量减少跨分片查询,balance均衡次数少。
10.只查询要使用的字段,而不查询所有字段。
11.更新字段的值时,使用$inc比update效率高。
12.apped collections比普通collections的读写效率高。
13.server-side processing类似于SQL查询的存储过程,可以减少网络通讯的开销。
14.必要时使用hint()强制使用某个索引查询。
15.如果有自己的主键列,则使用自己的主键列作为id,这样可以节约空间,也不需要创建额外的所以。
16.使用explain,根据exlpain plan进行优化。
17.范围查询的时候尽量用$in、$nin代替。
18.查看数据库查询日志,具体分析的效率低的操作。
19.mongodb有一个数据库优化工具database profiler,能够检测数据库操作的性能。可以发现query或者write操作中执行效率低的,从而针对这些操作进行优化。
20.尽量把更多的操作放在客户端,当然这就是mongodb设计的理念之一。
分享到:
相关推荐
本篇文章将深入探讨MongoDB查询性能优化验证的相关知识,包括查询优化原则和实际测试案例。 首先,理解MongoDB查询优化的基本原则至关重要。这包括: 1. **索引优化**:合理创建和使用索引能够显著提高查询速度。...
在MongoDB中,查询操作的优化对于提升系统整体性能至关重要。以下是一些关键的技术点: ##### 1. 创建索引 - **定义**:索引是在数据库表的一个或多个列上创建的数据结构,用于快速定位数据。在查询条件的字段上...
通过阅读《MongoDB应用设计模式:MongoDB Applied Design Patterns》,开发者可以深入了解MongoDB的设计原则、最佳实践以及在实际项目中的应用,从而更好地利用这一强大的数据库系统。书中的案例和经验分享将帮助...
本书主要针对MongoDB 3.4版本的性能优化问题,给出了原则性的总结,并于2017年6月发布。它涵盖了实现MongoDB系统高性能的关键维度,包括硬件、应用模式、模式设计与索引、磁盘I/O以及基准测试的设计。本书内容全面,...
MongoDB的查询优化器负责选择执行查询的最佳路径。源码中包含了一个基于成本的查询优化器,它评估不同的查询计划并选择最有效的。优化器的工作涉及到索引使用、扫描操作和投影等。 4. 索引系统 MongoDB支持多种类型...
与传统的关系型数据库不同,MongoDB通过灵活的数据模型和高效的查询语言,为大规模数据存储和处理提供了强大的支持。 ### 燕十八MongoDB视频教程全集21讲知识点概览 #### 第一部分:MongoDB基础篇 **第1讲:...
6. **数据存储与索引**:深入探讨了MongoDB的数据存储机制及索引优化策略,提高查询效率。 7. **锁定机制**:讲解了MongoDB的锁定原理,帮助理解并避免数据并发访问时的冲突。 8. **概念与术语**:对MongoDB的核心...
2. **数据建模**:MongoDB的设计与传统关系型数据库有所不同,书中深入探讨了如何进行非关系型数据建模,包括分片、引用和嵌入式数据模型的设计原则,帮助开发者理解如何根据业务需求选择合适的数据结构。...
本文将深入探讨 MongoDB 性能优化的三个主要方面:范式化与反范式化、填充因子的使用以及索引的使用。 首先,我们来讨论范式化与反范式化。范式化是一种传统的关系型数据库设计原则,旨在减少数据冗余和提高数据...
7. 性能优化:MongoDB支持索引,迁移后根据查询需求创建合适的索引,以提升查询性能。 8. 集成测试:在生产环境部署前,进行充分的集成测试,确保所有业务逻辑正常运行。 总之,从SQL Server到MongoDB的数据导入...
首先,MongoDB 4.0系列引入了混合交易(Hybrid Transactions),这是一项基于ACID(原子性、一致性、隔离性和持久性)原则的重要更新。这种新的事务处理能力使得MongoDB能够处理复杂的业务逻辑,提供跨文档的一致性...
- **查询语言**:MongoDB提供了一种类似于SQL的查询语言,支持复杂的查询表达式。 - **聚合管道**:通过一系列的聚合阶段来处理数据流,包括过滤、排序、分组等操作。 - **索引优化**:合理使用索引来提高查询效率,...
5. **性能优化**: 提供了一系列优化MongoDB性能的方法和技巧。 #### 五、实践案例 **此外,本书还提供了大量的实践案例,帮助读者更好地理解和掌握MongoDB的应用场景:** 1. **Web应用**: 展示了如何在现代Web...
- **缓存策略**:介绍MongoDB的缓存机制以及如何优化读写性能。 - **监控与故障排查**:教授常用的监控工具和技术,帮助开发者及时发现并解决问题。 - **第三部分:进阶主题** - **安全性** - **认证机制**:...
- **性能优化**:提供了一些建议来优化索引以提高查询性能。 #### 索引参考 - **命令语法**:列出了所有与索引相关的命令及其语法格式。 - **错误处理**:提供了解决索引操作过程中可能出现的问题和错误的方法。 ...
索引是数据库查询优化的关键,MongoDB中的索引操作也不例外。索引概念部分会讲解索引的基本知识和索引的工作原理。索引教程部分则向用户展示如何创建和管理索引以提高查询性能。索引参考部分则详细描述了索引相关的...
此外,考虑到文件上传可能会占用大量存储空间,MongoDB 的存储优化也是关键。可能需要定期清理不再使用的旧文件,或者使用生命周期管理策略来自动删除过期的文件。另外,通过设置合适的缓存策略,可以提高读取性能,...