服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - MongoDB - mongoDB数据库索引快速入门指南

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

2022-10-08 16:50侯小啾 MongoDB

索引是一种特殊的数据结构,存储设置在一个易于遍历形式的数据的一小部分。索引存储一个特定的字段或一组字段的值,在索引中指定的值的字段排列的,对mongoDB索引相关知识感兴趣的朋友跟随小编一起学习下吧

MongoDB 索引

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

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

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

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

1. 开始与准备数据

启动mongo并选择目标数据库

mongo

use test

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

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

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

2. 创建索引前

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

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

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

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

3. 创建索引 createIndex

给字段name创建索引

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

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

查看索引:

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

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

4. 创建索引后

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

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

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

5. 删除索引

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

查看之

db.test1.getIndexes()

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

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

6.唯一索引与符合索引

①唯一索引

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

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

查看索引

db.test1.getIndexes()

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

可以看到,unique为true。

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

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

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

即插入失败了。

②复合索引

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

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

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

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

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

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

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

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

原文链接:https://blog.csdn.net/weixin_48964486/article/details/123643518

延伸 · 阅读

精彩推荐
  • MongoDB详解mongodb 主从配置

    详解mongodb 主从配置

    我研究过的nosql,memcache,redis,mongodb都是支持分布式的,生产环境中用过memcache,redis,性能稳定。mongodb是最接近关系型数据库的,不用花很多时间去构建数...

    MongoDB教程网6122020-04-26
  • MongoDBMongoDB 副本集的搭建过程

    MongoDB 副本集的搭建过程

    这篇文章主要介绍了MongoDB 副本集的搭建过程,帮助大家更好的理解和学习使用MongoDB数据库,感兴趣的朋友可以了解下...

    DBA随笔8702021-05-09
  • MongoDB修复 Mac brew 安装 mongodb 报 Error: No available formula with the name ‘mongodb’ 问题详解

    修复 Mac brew 安装 mongodb 报 Error: No available formula with the name ‘m

    最近在同事新的 Mac 电脑上安装 mongodb,报了错误 Error: No available formula with the name ‘mongodb’,今天就说说这个问题如何解决,需要的朋友可以参考下 ...

    herman11022020-05-26
  • MongoDBUbuntu16.04手动安装MongoDB的详细教程

    Ubuntu16.04手动安装MongoDB的详细教程

    本篇文章主要介绍了Ubuntu16.04手动安装MongoDB的详细教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    蘑菇猎手10132020-05-13
  • MongoDB利用MongoDB中oplog机制实现准实时数据的操作监控

    利用MongoDB中oplog机制实现准实时数据的操作监控

    MongoDB 的Replication是通过一个日志来存储写操作的,这个日志就叫做oplog,而下面这篇文章主要给大家介绍了利用MongoDB中oplog机制实现准实时数据的操作监控...

    零の杂货铺7782020-05-12
  • MongoDBMongoDB中MapReduce的使用方法详解

    MongoDB中MapReduce的使用方法详解

    MapReduce应该算是MongoDB操作中比较复杂的了,下面这篇文章主要给大家介绍了关于MongoDB中MapReduce使用的相关资料,文中通过示例代码介绍的非常详细,需要...

    独孤求败2252020-05-16
  • MongoDBMongoDB系列教程(四):设置用户访问权限

    MongoDB系列教程(四):设置用户访问权限

    这篇文章主要介绍了MongoDB系列教程(四):设置用户访问权限,本文讲解了在Windows环境下如何创建用户认证,需要的朋友可以参考下 ...

    MongoDB教程网4852020-05-01
  • MongoDBMongoDB实现自动备份的全过程记录

    MongoDB实现自动备份的全过程记录

    这篇文章主要给大家介绍了关于MongoDB实现自动备份的全过程,文中通过示例代码介绍的非常详细,对大家学习或者使用MongoDB具有一定的参考学习价值,需...

    itmuch3582020-05-22