系列八、MongoDB索引

news/2024/11/7 8:42:24/

一、概述

        索引通常能够极大地提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件,并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量数据时,查询可能要花费几十秒甚至几分钟,这对网站的性能是非常致命的,索引是一种特殊的数据结构,存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或者多列的值进行排序的一种结构。

二、原理

从根本上来说,MongoDB中的索引与其他数据库系统中的索引类似。MongoDB在集合层面上定义了索引,并支持对MongoDB集合中的任何字段或者文档的子字段进行索引。

三、索引操作

3.1、创建索引

# 语法
db.集合名称.createIndex(keys,options)
db.集合名称.createIndex({"title":1,"description":-1})说明:语法中的key值为你要创建的索引字段,1:升序创建索引、-1:降序创建索引

createIndex可接收的参数如下:

3.1.1、为user集合的name字段创建升序索引

# 案例:为user集合的name字段创建升序索引
db.user.createIndex({name:1})

3.1.2、为user集合的name字段创建带有过期时间的索引

 

 3.1.3、创建复合索引

db.user.createIndex({name:1,age:-1},{name:'idx_name_age'})

 

 3.2、查看索引

# 语法
db.集合名称.getIndexes()

3.2.1、查看user集合中的所有索引 

# 案例:查询user集合中所有的索引
db.user.getIndexes()

3.2.2、查看集合索引的大小

# 语法:
db.集合名称.totalIndexSize()db.user.totalIndexSize()

 

 

 3.3、删除索引

# 语法
# 删除所有索引(不包含_id索引)
db.集合名称.dropIndexes()

3.3.1、删除所有索引 

# 案例:删除user集合中所有的索引
db.user.dropIndexes()

 3.3.2、删除指定索引

# 语法:
db.集合名称.dropIndex("索引名称")# 案例:删除user集合中name为idx_name的索引
db.user.dropIndex('idx_name')

 


http://www.ppmy.cn/news/242927.html

相关文章

护眼灯到底有没有用?盘点口碑销量好的护眼台灯

有一定的护眼作用。很多人认为护眼灯是智商税,想法并不正确,市面上品质好的护眼灯,光线是通过特殊处理过的,色温、亮度、光线均匀度、显色性都贴合人眼,并且能够护眼的效果。 我们在挑选护眼灯时,在室内环…

什么品牌台灯最舒服?推荐最热门的护眼灯品牌排行

台灯是人们生活中用来照明的一个电器,平时阅读跟学习时都会用来照明,补充室内不足的光线。 那么,台灯哪个品牌最舒服?分享几款好用的护眼台灯给大家。 (1) 南卡护眼台灯Pro 南卡是目前国内护眼效果方面做得最棒的一个品牌&#x…

机器学习 | 降维问题

目录 一、主成分分析 二、奇异值分解 2.1 奇异值分解原理 2.2 奇异值分解实践 三、特征值与特征向量 一、主成分分析 主成分有如下特征: 每个主成分是原变量的线性组合;各个主成分之间互不相关;主成分按照方差贡献率从大到小依次排列&…

【裸机驱动LED】使用汇编代码驱动LED(一)—— 寄存器解析篇

为了后续使用C语言驱动LED,事先学习汇编代码驱动LED,有如下好处: 熟悉一些基本的汇编语法了解驱动LED的基本流程了解驱动LED需要用到哪些寄存器作为一个初学者,可以锻炼自己阅读开发文档的能力 本文的主要目的是了解驱动LED的基…

java线程池

一、线程池的好处 1、为什么需要使用线程池 反复创建线程开销大 (内存和垃圾回收)过多的线程会导致内存消耗线程池可以规避上述问题,它可以复用每一个线程,并且还可以控制线程总量,便于管理 3、不使用线程池会怎么样…

关于API接口的介绍及简单的API接口代码示例

API接口是指应用程序接口,是不同应用之间进行通讯的一种方法。它提供了一种简单的方式来交换数据和交互。通过API接口,不同的应用和服务可以进行互操作,为开发人员提供更多的开发可能性。 API接口具有许多优点。它们是通用的,这意…

r7 5700g对比5800x选哪个

锐龙7 5800X,单CCD,8核心16线程,4MB二级缓存,32MB三级缓存,基准频率3.8GHz,最高加速4.7GHz,热设计功耗为105W。 组装电脑选5800x还是R5 5700g怎么搭配更合适这些点很重要 http://www.adiannao.c…

达人评测 r7 3700x和r5 5600g选哪个好

R5 5600G配备了6核12线程,拥有3MB二级缓存和三级缓存16MB,基础频率为3.9GHz,最高加速 为4.4GHz,内置核显为Vega 7 GPU,核显频率为1900MHz 组装电脑选r5 5600g还是r7 3700x怎么搭配更合适这些点很重要 http://www.adian…