Mongodb入门4
今天学习一下MongoDB数据库的索引.
因为养的鱼生病了,所以抽空晚上学习记录一下.
这里借用一下菜鸟教程的原文:
索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。 这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。 索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构
话不多说,索引的基本shell 命令如下:
// 建立索引
1. 版本3.0之前用 db.collectionName.ensureIndex({key:value})
2. 版本3.0之后用 db.collectionName.createIndex({key:value})
// 查询索引
db.collectionName.getIndexes()
// 删除索引
db.collectionName.dropIndex("索引名称")
看一下在200万条数据下,索引的优化结果:
Tip:我故意从大概50000的位置找的一个数据,然后我在没有索引的情况下查一下看看

然后我这边给username设置为索引:

然后再次查询:

可以看到,查询速度快了200倍左右,这很致命
不过,我们也不能滥用索引,因为索引会消耗内存和硬盘资源的
Mongodb入门4的更多相关文章
- MongoDB 入门之基础 DCL
此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...
- MongoDB入门三:MongoDB shell
MongoDB shell MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序.也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作.类似于 ...
- MongoDB 入门之查询(find)
MongoDB 入门之查询(find) 1. find 简介 (1)find的第一个参数决定了要返回哪些文档. 空的查询文档会匹配集合的全部内容.默认就是{}.结果将批量返回集合c中的所有文档. db ...
- MongoDB入门简介
MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...
- mongodb入门教程二
title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...
- mongodb入门教程
title: mongodb入门教程 date: 2016-04-06 14:47:18 tags: --- 为什么要认识呢,因为这玩意就一傻逼 借用一下百科的介绍 MongoDB 是一个介于关系数据 ...
- MongoDb 入门教程
MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的高性能数据存储解决方案,经常被用于非关系型数据的存储,能存储海量的数据. 常 ...
- MongoDB入门必读(概念与实战并重)
MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个 ...
- mongodb入门很简单(3)
##简单的mongodb入门命令## 1.show dbs; //查看当前数据库 2.use databaseName; //选库 3.show tables/collec ...
- MongoDB入门实践
MongoDB入门实践 简单介绍MongoDB,包括MongoDB的使用场景.和MySQL的对比.安装部署.Java客户端访问及总结 MongoDB? 我们遵循需求驱动技术的原则,通过一个场景来引入M ...
随机推荐
- java 类的执行顺序
java代码 package net.cybclass.sp; public class Test01 { public static void main(String[] args) { new c ...
- 解决阿里云redis监听6379,配置规则也将6379端口开放,但是外网仍无法连接6379的问题
首先确保阿里云配置规则和服务器防火墙已开发6379端口 阿里云linux安装完成redis,并且已经运行,检测6379端口,显示redis-server正在监听,如图 修改redis.conf配置 将 ...
- [oeasy]教您玩转python - 0006 - 自由软件运动和开源运动
顺序执行 回忆上次内容 上次写了10000行代码 10000行代码 都是写在明面上的 人家一下载py 文件 就能看个明明白白 修改或者运行程序都很方便 这程序全都这么公开出来 大家随意修改 ...
- 简单认识APP项目
manifests:里面只有一个xml,是app运行配置文件 清单文件 <?xml version="1.0" encoding="utf-8"?> ...
- 趣谈n++与++n的differences
前言:今天小白在学习时无意发现一组有趣的孪生兄弟** n++ 与 ++n** 探索:二者不同之处 工具:VS2022 过程: 前者是++n,输出11,12,13,14 后者是n++,输出10,11,1 ...
- 【Windows】固定Win系统的IP地址
是我迟钝了,突然想到这个事情就记一下 先开终端查看IP信息 : IPCONFIG 找到当前连接: IPv4协议设置: 家庭网络设置就这样,公司内网有自己的一个DNS服务地址,这个网管知道 在Win11 ...
- 【JavaWeb】封装一个MVC框架
框架参考自: https://www.bilibili.com/video/BV1gV411r7ct 在老师的基础上添加了 1.POST参数处理 2.Tomcat8版本下中文乱码处理 3.可声明请求方 ...
- 【SpringBoot】09 日志集成
原来日志还分抽象层和实现层... 抽象层被称为是日志门面,实现层被称为是日志实现 门面的有: - JCL[Jakarta Commons Logging] 远古门面 - SLF4J[Simple ...
- 【Spring】07 后续的学习补充 vol1
控制反转Inverse Of Control的演变: 在之前的原生Javaweb项目的问题: 我们三层架构每一层之间的联系是这样的: 由GradeDao接口指向GradeDaoImpl 再由Grade ...
- linux测试cpu性能的命令
linux测试cpu性能的命令 在Linux中,可以使用多种命令来测试CPU性能.以下是一些常用的命令: stress: 一个通用的压力测试工具,可以生成CPU.内存.IO等负载. 安装: sudo ...