mongo官方文档对hint的解释如下:

The $hint operator forces the query optimizer to use a specific index to fulfill the query. Specify the index either by the index name or by document.

hint的命令行用法:

db.users.find().hint()

mongo中使用explain来确定查询使用的索引方案,对比explain的结果,可以反向校验hint的使用。explain的命令行用法:

db.collection.explain()

github.com/globalsign/mgo下对hint方法的注释如下:

// Hint will include an explicit "hint" in the query to force the server
// to use a specified index, potentially improving performance in some
// situations.  The provided parameters are the fields that compose the
// key of the index to be used.  For details on how the indexKey may be
// built, see the EnsureIndex method.

hint参数列表是用作索引的字段,更多细节请参考EnsureIndex方法。

// To obtain an index with a descending order,
// the field name should be prefixed by a dash

组合索引

mongo中组合索引称为Compound Index,不同于MySQL,它可以指定索引字段排列顺序。对于下面的索引:

{ userid: 1, score: -1 }

索引先通过userid进行排序,如果user_id相同,再根据score的倒序排。这中形式,对查询有什么影响呢?

mongo官方文档的例子来尝试理解,索引{ a: 1, b: -1 }支持{ a: 1, b: -1 }{ a: -1, b: 1 }的排序操作,但不支持{ a: -1, b: -1 }{a: 1, b: 1}的操作。

mongo中hint的使用相关推荐

  1. mongo中的游标与数据一致性的取舍

    除了特殊注释外,本文的测试结果均基于 spring-data-mongodb:1.10.6.RELEASE(spring-boot-starter:1.5.6.RELEASE),MongoDB 3.0 ...

  2. day12_oracle hint——SQL优化过程中常见Oracle中HINT的30个用法

    在SQL语句优化过程中,经常会用到hint, 以下是在SQL优化过程中常见Oracle中"HINT"的30个用法 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方 ...

  3. 芝麻分从本地mongo中获取有效数据工具

    引言: 起因:java接入芝麻分,接口数据为了提高效率,需要储存在mongo中,若接口调用则优先从本地mongo库中查询是否存在有效数据. mongo查询: import com.alibaba.fa ...

  4. Oracle中Hint深入理解(原创)

    http://czmmiao.iteye.com/blog/1478465 Hint概述  基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明 ...

  5. 性能优化:Sql语句中HINT不起作用

    今天在做性能测试的时候,发现数据库的load很高,排查觉得Sql的索引有问题,但是一时找不到原因,后来经过Google发现是HINT的问题文摘如下: 在select/delete/update后写/* ...

  6. oracle中hint 详解

    Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行 ...

  7. hint java_Oracle中Hint深入理解

    Hint概述基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行人 ...

  8. e339 java_java-在Spring Mongo中从文档数组中删除项目

    我在mongo db中有这样的文档集合: "_id" : ObjectId("592bc37c339e7a23788b4c7c"), "trips&q ...

  9. oracle 设置忽略关键字,Oracle中Hint被忽略的几种常见情形

    Hint可以影响优化器对于执行计划的选择,但这种影响不是强制性的,优化器在某些情况下可能会忽略目标SQL中的Hint.由于各种原因导致Hint被Oracle忽略后,Oracle并不会给出任何提示或者警 ...

最新文章

  1. 现代 JavaScript 函数库 usuallyjs 的安装和使用
  2. 《赢道:成功创业者的28条戒律》成都签售会魅力登场(背景)
  3. 【EventBus】EventBus 源码解析 ( 注册订阅者 | 注册订阅方法详细过程 )
  4. B2B 企业如何高效获客增长?
  5. 阿里云飞天洛神2.0:开放弹性的云网络NFV平台
  6. Vue 路由模块化配置
  7. CentOS7安装后没网络的解决方法
  8. 调用Kubernetes SDK实现二次开发
  9. 从难民到 Uber 首席技术官:一个亚裔幸存者的故事
  10. 数学建模:线性回归模型
  11. debian10编译安装mysql
  12. 等保测评--管理机构安全(ORS)
  13. outlook2016 打不开超链接
  14. arm mali 天梯图_手机最新CPU天梯图 2018年12月手机最新处理器排名表
  15. 阿里云 数加 · DataWorks 数据同步
  16. GL音乐播放器1.0.0版-- 总结帖
  17. 使用 HeadSpin BYOD 进行现场测试
  18. 三十五年经验分享:程序员进阶八法
  19. 长见识了,Kotlin + SpringBoot + JPA 整合开发比Java更爽...
  20. 个人向前端知识“复健”

热门文章

  1. 典型回溯题目 - 全排列(一、二)
  2. Bugku:加密 富强民主
  3. 巧施妙计,改造“窝里横”男人
  4. 用神经网络模拟化学反应
  5. 荧光灯(日光灯)工作原理---镇流器,启辉器
  6. Dollar Dayz(完全背包 + 高精度)
  7. 朋友圈的设计及实现。
  8. 配置nginx实现连接超时
  9. oracle 19cRAC FOR redhat8.2 on vmware workstation 16.0
  10. java/android 设计模式学习笔记(7)---装饰者模式