广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >MongoDB索引的用法介绍
  • 850
分享到

MongoDB索引的用法介绍

2024-04-02 19:04:59 850人浏览 薄情痞子
摘要

索引通常能够极大的提高查询的效率,如果没有索引,mongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。 这种扫描全集合的查询效率是非常低的,特别在处理大量的

索引通常能够极大的提高查询的效率,如果没有索引,mongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。

这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。

索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构

一、索引

1、createIndex() 方法

MonGoDB使用 createIndex() 方法来创建索引。

注意在 3.0.0 版本前创建索引方法为 db.collection.ensureIndex(),之后的版本使用了 db.collection.createIndex() 方法,ensureIndex() 还能用,但只是 createIndex() 的别名。

语法

createIndex()方法基本语法格式如下所示:

db.collection.createIndex(keys, options)

语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。

实例

db.col.createIndex({"title":1})

createIndex() 方法中你也可以设置使用多个字段创建索引(关系型数据库中称作复合索引)。

db.col.createIndex({"title":1,"description":-1})

createIndex() 接收可选参数,可选参数列表如下:

在后台创建索引:

db.values.createIndex({open: 1, close: 1}, {background: true})

通过在创建索引时加 background:true 的选项,让创建工作在后台执行

2、其他

1、查看集合索引

db.col.getIndexes()

2、查看集合索引大小

db.col.totalIndexSize()

3、删除集合所有索引

db.col.dropIndexes()

4、删除集合指定索引

db.col.dropIndex("索引名称")

二、全文索引

1、创建全文索引

考虑以下 posts 集合的文档数据,包含了文章内容(post_text)及标签(tags):

{
   "post_text": "enjoy the mongodb articles on Runoob",
   "tags": [
      "mongodb",
      "runoob"
   ]
}

我们可以对 post_text 字段建立全文索引,这样我们可以搜索文章内的内容:

db.posts.ensureIndex({post_text:"text"})

2、使用全文索引

现在我们已经对 post_text 建立了全文索引,我们可以搜索文章中的关键词 runoob:

db.posts.find({$text:{$search:"runoob"}})

以下命令返回了如下包含 runoob 关键词的文档数据:

{ 
   "_id" : ObjectId("53493D14d852429c10000002"), 
   "post_text" : "enjoy the mongodb articles on Runoob", 
   "tags" : [ "mongodb", "runoob" ]
}

使用全文索引可以提高搜索效率。

3、删除全文索引

删除已存在的全文索引,可以使用 find 命令查找索引名:

db.posts.getIndexes()

通过以上命令获取索引名,本例的索引名为post_text_text,执行以下命令来删除索引:

db.posts.dropIndex("post_text_text")

到此这篇关于MongoDB索引的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: MongoDB索引的用法介绍

本文链接: https://www.lsjlt.com/news/150843.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB索引的用法介绍
    索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。 这种扫描全集合的查询效率是非常低的,特别在处理大量的...
    99+
    2022-11-13
  • 索引介绍
    一.索引介绍 1.什么是索引 1)索引就好比一本书的目录,它能让你更快的找到自己想要的内容。 2)让获取的数据更有目的性,从而提高数据库检索数据的性能。 2.索引类型介绍 1)BTREE:B+树索引 2)HASH:HASH索引 3)...
    99+
    2015-12-27
    索引介绍
  • Sqlite—索引介绍
    创建索引 1、单列索引 单列索引是一个只基于表的一个列上创建的索引。基本语法如下: sqlite> CREATE INDEX index_name ON table_name (column_name); sqlite> CRE...
    99+
    2018-06-25
    Sqlite—索引介绍
  • Mysql之索引介绍
    定义:索引用于快速找出某个列中有一特定值的行。不使用索引,MySql必须从第一条记录开始读完整个表,直到找出相关的行。表越大,查询数据所花费的时间越多。如果表中查询的列有一个索引,Mysql能快速到达一个位...
    99+
    2022-10-18
  • mysql的索引类型介绍
    这期内容当中小编将会给大家带来有关mysql的索引类型介绍,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mysql目前主要有以下几种索引类型:Full-text,HASH...
    99+
    2022-10-18
  • MySQL索引的详细介绍
    这篇文章主要介绍MySQL索引的详细介绍,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、什么是索引?  在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的...
    99+
    2022-10-18
  • MySQL的InnoDB存储索引和算法介绍
    今天就跟大家聊聊有关MySQL的InnoDB存储索引和算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。InnoDB定义InnoDB是事务型数据库的...
    99+
    2022-10-18
  • MySQL中表索引定义的方法与介绍
    概述 索引是 DBMS 根据表中的一列或若干列按一定的顺序建立的列值与记录行之间的对应关系表,方便 DBA 管理 索引是以文件的形式存储,DBMS 将一张表的所有所有保存在同一个索引文件中,需要占用磁...
    99+
    2022-10-18
  • sql索引的介绍及使用规则
    1.索引概述 1.1索引介绍 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构 上实现高级查找算...
    99+
    2023-09-01
    sql 数据库 mysql
  • MySql索引相关知识介绍
    下面一起来了解下MySql索引相关知识,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySql索引相关知识这篇短内容是你想要的。          &n...
    99+
    2022-10-18
  • MySQL数据库索引介绍 - Mr
    一、什么是索引 索引是mysql数据库中的一种数据结构,就是一种数据的组织方式,这种数据结构又称为key 表中的一行行数据按照索引规定的结构组织成了一种树型结构,该树叫B+树 二、为何要用索引 优化查询速度 注意:只能加速索引字段 三、如...
    99+
    2016-01-29
    MySQL数据库索引介绍 - Mr
  • Oracle对象之表和索引的介绍
    对于传统的关系数据库管理系统(RDBMS),比如Oracle、MySQL等,都是在数据库中存储和检索数据,在Oracle中,用schema来表示逻辑数据结构或模式对象的集合,模式对象是用户创建的,用来直接引...
    99+
    2022-10-18
  • MySQL数据库索引的详细介绍
    这篇文章主要讲解了“MySQL数据库索引的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库索引的详细介绍”吧!01、前言看了很多关于索...
    99+
    2022-10-18
  • MySQL中的聚簇索引、非聚簇索引、联合索引和唯一索引详细介绍
    目录一、索引类型二、聚簇索引和非聚簇索引三、覆盖索引四、联合索引最左前缀匹配原则索引下推五、唯一索引一、索引类型 索引根据底层实现可分为B-Tree索引和哈希索引,大部分时候我们使用的都是B-Tree索引,因为它良好的性...
    99+
    2023-04-19
    MySQL索引 MySQL聚簇索引 MySQL非聚簇索引 MySQL联合索引 MySQL唯一索引
  • MySQL索引介绍及优化方式
    目录一、导致sql执行慢的原因二、分析原因时,一定要找切入点三、什么是索引?四、Explain分析1.id2.select_type3.table4.type(★)5.possible_key6.key(★)7...
    99+
    2022-09-12
  • MySQL Innodb索引机制详细介绍
    1、什么是索引 索引是存储引擎用于快速找到记录的一种数据结构。 2、索引有哪些数据结构 顺序查找结构:这种查找效率很低,复杂度为O(n)。大数据量的时候查询效率很低。 ...
    99+
    2022-11-12
  • php引用类名的方法介绍
    这篇文章主要讲解了“php引用类名的方法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php引用类名的方法介绍”吧!PHP 命名空间中的类名可以通过三种方式引用:1、非限定名称,或不包含...
    99+
    2023-06-20
  • MySQL索引概念及七种索引类型分享介绍
    目录1 索引的概念2 索引的类型1 索引的概念 索引(在mysql中也叫做“键(key)”)是存储引擎用于快速找到记录的一种数据结构,这也是索引最基本的功能。 索引对于良好的性能非常关键。数据量越...
    99+
    2022-08-22
    MySQL索引类型 MySQL索引
  • MySQL索引的数据结构-B+树介绍
    1.聚集索引和辅助索引 在数据库中,B+树的高度一般都在24层,这也就是说查找某一个键值的行记录时最多只需要2到4次IO,这倒不错。因为当前一般的机械硬盘每秒至少可以做100次IO,24次的IO意味着查询时间只需要0.02~0.0...
    99+
    2017-02-08
    MySQL索引的数据结构-B+树介绍
  • sql索引的介绍以及使用规则详析
    目录1.索引概述1.1索引介绍1.2索引的优劣势2.索引结构2.1 概述3. 索引分类3.1 索引分类3.2 聚集索引&二级索引索引使用4.1索引语法4.2创建演示5.索引法则总结1.索引概述 1.1索...
    99+
    2023-04-03
    sql索引用法 sql中的索引 sql索引使用规则是什么
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作