小工具      在线工具  汉语词典  css  js  c++  java

mongodb索引选取及优化

# mongodb,mongodb 额外说明

收录于:200天前

问题

项目中有类似这样的查询场景

开始是对某个查询类似SQL

select * from t_order where customerCode=xxxx and createTme> xxx and createTime<xxx order by createTime desc

开始是对两字段分别加索引。 压测试发现效果不好

> db.t_order.createIndex({'customerCode':1})                     #客户编号
> db.t_order.createIndex({'createTime':-1})                       #创建时间范围查询

解决

给这两字段创建组合索引

压测效果明显好转, 当然,在项目中最好要给默认的时间范围,比如一个月

> db.t_order.createIndex({'customerCode':1, 'createTime':-1},{"name":"cus_createT_index","background":true})

其他

当mongodb业务上有很多查询时,不要单独去创建索引,需应该是根据条件一个个创建组合索引。这样性能更高,比如

 

mysql这种场景最好也用组合索引

. . .

相关推荐

额外说明

已创建分叉

进程的正式引入 1)什么是进程 动态过程而不是静态实物 进程就是程序的一次运行过程,一个静态的可执行程序a.out 的一次运行过程(./a.out去运行到结束)就是一个进程。 进程控制块PCB(process control block),内核中专门用来

额外说明

解决 git 冲突的常用方法是取消所有本地提交并强制重置当前存储库版本

git放弃本地修改,重置为服务端版本 git fetch --all git reset --hard origin/master 执行之前先把自己的代码人工保存一下,这2句命令可以解决90%的冲突

额外说明

leetcode100(同一棵树:二叉树遍历)

题目:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 题解:利用DFS算法递归遍历两棵树,比较结点数字的大小是否相同,以及两棵树的结点是否都存在或都不存在 class TreeNod

额外说明

Git 内容学习

一、Git 的理解 Git是一个分布式版本控制系统(Distributed Version Control System,简称 DVCS),用于对项目源代码进行管理和跟踪变更。分为两种类型的仓库:本地仓库和远程仓库。 二、Git 的工作流程 详解如下:

额外说明

【OpenCV】高手勿入! 半小时学会基本操作 1 图片读取显示

【OpenCV】高手勿入! 半小时学会基本操作 1 概述 读取图片 显示图片 输出图片信息 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 1 课) 读取图片 cv2

额外说明

C++ 虚拟析构函数 (virtual destructor)

C++ 虚拟析构函数 概述 问题 虚析构函数 总结 概述 虚析构函数 (virtual destructor) 可以帮我们实现基类指针删除派生类对象. 问题 当我们从派生类的对象从内存中撤销时会先调用派生的析构函数, 然后再基类的析构函数, 由此就会产生

额外说明

量化交易 第五课 策略评估指标

第五课 策略评估指标 概述 收益指标 回测收益率 年化收益率 基准收益率 风险指标 最大回撤 单位风险收益指标 夏普比率 概述 在量化策略回测研究中, 往往需要通过风险评价指标从各个角度客观, 全面地分析策略的可行性. 因此需要对常见的指标有一定的了解.

额外说明

【C++数据结构】启航,打开新世界的大门!

文章目录 一、学习数据结构的原因 二、一个值得思考的问题 三、本专栏涉及到的知识/技术 面向对象技术 模板技术 异常类技术 一、学习数据结构的原因 学习数据结构对于计算机科学和软件开发非常重要,它提供了处理和组织数据的有效方法和技术。以下是几个学习数据结

额外说明

详解Spring、SpringBoot、SpringCloud三者的联系与区别

一、Spring 二、Spring Boot 三、Spring Cloud 四、三者的关系 一、Spring Spring 是一个轻量级的Java 开发框架,主要依存于SSM 框架,即Spring MVC + Spring + Mybatis,定位很明确

额外说明

宝塔面板或其他面板Nginx环境下配置文件模板

Nginx 配置文件 本方法的优点在于只修改两处位置(网站域名、网站路径即可使用) server { # [改] 网站的路径 set $path /www/wwwroot/edusoho; listen 80; # [改

ads via 小工具