码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MongoDB索引覆盖查询


            为Mongodb的集合添加索引, 使用集合文档中部分数据,建立B型树,将全表扫描的方式转化成索引查询的方式,能够提高查询效率,减少数据库检索文档的数量,同时也降低对服务器cpu和内存的消耗。

            构建查询语句时,按照业务系统要求,查询条件和返回结果复杂多样。不同的查询条件与返回结果,对查询过程产生影响。

    索引覆盖查询

            索引覆盖查询,是一种完全通过检索索引而返回查询结果的查询方法。查询语句中,查询字段,定义的返回字段,都定义在索引当中。不需要检索文档来返回结果。

            如在库存表中添加索引,

    db.inventory.createIndex({type: 1, item: 1})

           有查询语句

    db.inventory.find({type: "food", item: /^c/}, {item: 1, _id: 0})

            这个查询语句,就是一个索引覆盖查询。其中查询字段type, item是复合索引"type_1_item_1"的两个字段。而在projection定义的返回字段中,保留在索引中定义的item字段, 关闭_id 字段,无需查询文档即可返回查询结果。

    满足索引覆盖查询的条件

            满足下面三个特征的查询,即可称为索引覆盖查询

    • 查询条件中过滤的字段,是定义索引的部分字段或全部字段
    • 查询结果返回的字段,与索引中定义的字段相同或部分相同
    • 查询字段值不能为空。如{"field": null} or {"field": {$eq: null}}

  • 相关阅读:
    关于支持向量机,他的重难点是什么?
    maven下载安装及IDEA配置、使用maven导出项目jar包并部署到服务器上
    基于STM32设计的智能水产养殖系统(华为云IOT)
    HTTP学习——协议与术语、HTTP、缓存、Cookie
    2009-2021系统架构设计师(高级)历年论文题目
    16.左侧导航菜单制作
    “目标检测”任务基础认识
    带你学习不一样的数据仓库系列-框架概念
    在ArcGIS Pro中新建空图层的最快方法
    nodejs+python教学成果投票系统java
  • 原文地址:https://blog.csdn.net/wilsonzane/article/details/134397553
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号