MongoDB 强制使用索引 hint

mongodb,强制,使用,索引,hint · 浏览次数 : 581

小编点评

**转载来源:** 虽然 MongoDB 查询优化器一般工作很不错,但是也可以使用 hint() 来强迫 MongoDB 使用一个特定的索引。在这种方法下某些情境下会提升性能。 **示例:** ``` db_name.table_name.find({query}).hint({\"index_name\":1}); ``` **参数:** * `db_name`:数据库名。 * `table_name`:集合名。 * `query`:查询条件。 * `index_name`:要使用的索引名。 **用法:** 在使用 query 条件查询时,强制使用索引指定索引名称。例如: ``` db.student.find({socre:{$gt:80}}).hint(\"score_1\").explain() ``` **注意:** * 在使用 hint() 强迫索引查询时,索引必须在索引列表中。 * 索引必须与查询条件中的所有字段匹配。 * 强迫索引查询可能会降低查询效率,因此在使用前应考虑其影响。

正文

转载请注明出处:

  虽然MongoDB 查询优化器一般工作的很不错,但是也可以使用 hint() 来强迫 MongoDB 使用一个特定的索引。在这种方法下某些情形下会提升性能。

  一个有索引的 collection 并且执行一个多字段的查询。传入一个制定的索引,强迫查询使用该索引

  语法

db_name.table_name.find({query}).hint({"index_name":1});

  参数

名称描述
db_name 数据库名
table_name 集合名
query 查询条件
index_name 索引名

  说明

  这里,我们在使用 query 条件查询时,强制使用 index_name 索引。

  案例

db.student.find({socre:{$gt:80}}).hint("score_1").explain()

  java 在 MongoDB 查询时,指定查询强制 使用的索引:springframework 中 MongoDB 的 查询api 类:query 已经支持了 在查询时的强制指定查询的索引:

  源码使用封装的方法如下:在封装查询条件时,通过 这个方法,将索引名称传入就可以进行 强制索引查询

 

 

 

与MongoDB 强制使用索引 hint相似的内容:

MongoDB 强制使用索引 hint

转载请注明出处: 虽然MongoDB 查询优化器一般工作的很不错,但是也可以使用 hint() 来强迫 MongoDB 使用一个特定的索引。在这种方法下某些情形下会提升性能。 一个有索引的 collection 并且执行一个多字段的查询。传入一个制定的索引,强迫查询使用该索引 语法 db_name.

MongoDB安装、基础操作和聚合实例详解

虽然MongoDB这些年很流行,但笔者之前没研究过,现在有需求研究这类NoSQL的数据库,是为了验证其是否可被替换。 MongoDB是很轻量的文档数据库,简单测试也懒得专门准备虚拟机环境了,直接在macOS上安装测试下其基础功能。 1.使用 Homebrew 安装 MongoDB 2.启动/停止 M

MongoDB安全加固,防止数据库攻击删除勒索威胁

前言: 今天发现前段时间自己搭建的一个系统的MongoDB数据找不到了,觉得很奇妙,然后登上MongoDB数据库发现多了一个名为READ__ME_TO_RECOVER_YOUR_DATA的数据库,里面还有一个README的集合里面包含了下面描述的勒索信息。没错我的MongoDB数据库被攻击了,不过还

MongoDB从入门到实战之MongoDB简介

前言 相信很多同学对MongoDB这个非关系型数据库都应该挺熟悉的,在一些高性能、动态扩缩容、高可用、海量数据存储、数据价值较低、高扩展的业务场景下MongoDB可能是我们的首选,因为MongoDB通常能让我们以更低的成本解决问题(包括学习、开发、运维等成本)。接下来的一个月博主将会从基础出发,编写

MongoDB从入门到实战之MongoDB快速入门

前言 上一章节主要概述了MongoDB的优劣势、应用场景和发展史。这一章节将快速的概述一下MongoDB的基本概念,带领大家快速入门MongoDB这个文档型的NoSQL数据库。 MongoDB从入门到实战的相关教程 MongoDB从入门到实战之MongoDB简介👉 MongoDB从入门到实战之Mo

MongoDB从入门到实战之Docker快速安装MongoDB

前言 在上一篇文章中带领带同学们快速入门MongoDB这个文档型的NoSQL数据库,让大家快速的了解了MongoDB的基本概念。这一章开始我们就开始实战篇教程,为了快速把MongoDB使用起来我将会把MongoDB在Docker容器中安装起来作为开发环境使用。然后我这边MongoDB的可视化工具用的

MongoDB从入门到实战之MongoDB工作常用操作命令

前言: 上一章节我们快速的在Docker容器中安装了MongoDB,并且通过Navicat MongoDB可视化管理工具快速的连接、创建数据库、集合以及添加了文档数据源。这一章节我们主要是了解一下在日常工作中MongoDB一些常用的操作命令。 MongoDB从入门到实战的相关教程 MongoDB从入

MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(1)-后端项目框架搭建

前言: 前面的四个章节我们主要讲解了MongoDB的相关基础知识,接下来我们就开始进入使用.NET7操作MongoDB开发一个ToDoList系统实战教程。本章节主要介绍的是如何快熟搭建一个简单明了的后端项目框架。 MongoDB从入门到实战的相关教程 MongoDB从入门到实战之MongoDB简介

MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(2)-Swagger框架集成

Swagger是什么? Swagger是一个规范且完整API文档管理框架,可以用于生成、描述和调用可视化的RESTful风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。

MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(3)-系统数据集合设计

前言 前几章教程我们把ToDoList系统的基本框架搭建好了,现在我们需要根据我们的需求把ToDoList系统所需要的系统集合(相当于关系型数据库中的数据库表)。接下来我们先简单概述一下这个系统主要需要实现的功能以及实现这些功能我们需要设计那些数据库集合。 MongoDB从入门到实战的相关教程 Mo