mongoDB数据库索引快速入门指南

 更新时间:2022年03月23日 11:31:47   作者:侯小啾  
索引是一种特殊的数据结构,存储设置在一个易于遍历形式的数据的一小部分。索引存储一个特定的字段或一组字段的值,在索引中指定的值的字段排列的,对mongoDB索引相关知识感兴趣的朋友跟随小编一起学习下吧

MongoDB 索引

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

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

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

mongo可以通过创建索引来提高查询的速度。

1. 开始与准备数据

启动mongo并选择目标数据库

mongo

use test

然后准备一组数据(10万条数据,较大的数据量)

for(i=0;i<100000;i++){db.test.insert({name:'test'+i,age:i})}

在这里插入图片描述

2. 创建索引前

查询一下name为"test90000"的数据。并使用explain方法来查看查询的性能。

db.test1.find({name:"test90000"}).explain('executionStats')

在这里插入图片描述

这里可以看到查询花了53毫秒

3. 创建索引 createIndex

给字段name创建索引

db.test1.createIndex({name: 1})

在这里插入图片描述

查看索引:

在这里插入图片描述

给name创建索引之前,_id字段默认为索引,创建后集合有两个索引,"_id"和"name"。

4. 创建索引后

再次查找该条数据,并查看查询的性能,发现所用时间接近0毫秒。即设定索引后查询性能大大提升了。

db.test1.find({name:"test90000"}).explain('executionStats')

在这里插入图片描述

5. 删除索引

db.test1.dropIndex({name:1})

查看之

db.test1.getIndexes()

在这里插入图片描述

如图,只剩下了"_id"一个索引。"name"索引已被删除。

6.唯一索引与符合索引

①唯一索引

db.test1.createIndex({name: 1},{"unique":true})

在这里插入图片描述

查看索引

db.test1.getIndexes()

在这里插入图片描述

可以看到,unique为true。

设定为唯一索引后,该索引的值不能重复。
(这个特点也可以用于写爬虫时不想要某字段的重复数据时,达到去重的目的。)

如图插入一条name重复的数据时,会产生如下报错:

在这里插入图片描述

即插入失败了。

②复合索引

创建多个索引的方式被称为复合索引。

首先删掉刚刚创建的索引name

db.test1.dropIndex({name:1})

然后一次创建name,age两个索引

db.test1.createIndex({'name':1,'age':1})

在这里插入图片描述

处理海量数据时,在一定的规则下使用复合索引,可以大幅提升查询的性能.

到此这篇关于mongoDB数据库索引快速入门指南的文章就介绍到这了,更多相关mongoDB索引内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MongoDB入门教程之聚合和游标操作介绍

    MongoDB入门教程之聚合和游标操作介绍

    这篇文章主要介绍了MongoDB入门教程之聚合和游标操作介绍,聚合和游标可以说是MongoDB中的高级操作了,需要的朋友可以参考下
    2014-08-08
  • MongoDB快速入门笔记(六)之MongoDB的文档修改操作

    MongoDB快速入门笔记(六)之MongoDB的文档修改操作

    这篇文章主要介绍了MongoDB快速入门笔记(六)之MongoDB的文档修改操作的相关资料,需要的朋友可以参考下
    2016-06-06
  • MongoDB Shell 命令实例总结【进阶篇】

    MongoDB Shell 命令实例总结【进阶篇】

    这篇文章主要介绍了MongoDB Shell 命令,结合实例形式总结分析了MongoDB数据库常用的查询、更新、插入、集合、函数等相关操作技巧与注意事项,需要的朋友可以参考下
    2019-02-02
  • 深入了解MongoDB是如何存储数据的

    深入了解MongoDB是如何存储数据的

    MongoDB是一个可扩展、高性能的分布式文档存储数据库,由C 语言编写,下面这篇文章主要给大家介绍了关于MongoDB是如何存储数据的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • mongodb实现数组对象求和方法实例

    mongodb实现数组对象求和方法实例

    这篇文章主要给大家介绍了关于mongodb实现数组对象求和的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • MongoDB中javascript脚本编程简介和入门实例

    MongoDB中javascript脚本编程简介和入门实例

    作为一个数据库,MongoDB有一个很大的优势——它使用js管理数据库,所以也能够使用js脚本进行复杂的管理——这种方法非常灵活
    2014-04-04
  • MongoDB模糊查询正则regex(类似like 和 not like)

    MongoDB模糊查询正则regex(类似like 和 not like)

    在类关系型数据库中,like和not like是常用的模糊查询操作符,它允许我们在匹配字段的时候使用通配符,在MongoDB中,也有类似的操作符,MongoDB 可以使用 $regex 操作符来设置匹配字符串的正则表达式,MongoDB 使用 PCRE(Perl 兼容的正则表达式)作为正则表达式语言
    2024-02-02
  • mongodb 命令行下及php中insert数据详解

    mongodb 命令行下及php中insert数据详解

    这篇文章主要介绍了mongodb 命令行下及php中insert数据详解,需要的朋友可以参考下
    2014-07-07
  • MongoDB开源数据库开发工具dbKoda

    MongoDB开源数据库开发工具dbKoda

    这篇文章主要介绍了MongoDB开源数据库开发工具dbKoda的相关资料,需要的朋友可以参考下
    2017-09-09
  • MongoDB学习笔记之MapReduce使用示例

    MongoDB学习笔记之MapReduce使用示例

    这篇文章主要介绍了MongoDB学习笔记之MapReduce使用示例,本文直接给出实例代码,需要的朋友可以参考下
    2015-07-07

最新评论