当前位置:网站首页>MongoDB 索引
MongoDB 索引
2022-07-17 05:25:00 【guizi0809】
一、概念
索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得更快。
二、实操
1. 插入一百万条数据
我们创建一个名为user的数据库,在该数据库中创建一个名为student的集合(表),并在student表中添加一百万条数据。
2. 查询某条数据,并记录查询时间
explain是非常有用的工具,会帮助你获得查询方面诸多有用的信息。
db.student.find().explain()
查询结果如下:
若要记录查询的时间,需要给explain添加executionStats参数
db.student.find().explain('executionStats')
如下,查询name=诸葛亮1001的数据,查询时间为641ms,若数据量有上百亿条,则更耗时。
3. 创建索引,再次查询同一条数据,并记录查询时间
在操作前,先掌握有关索引的命令
- 创建索引
db.student.createIndex({
'name': 1})
- 获取当前集合的索引
db.student.getIndexes()
- 删除索引
db.student.dropIndex({
'name': 1})
我们创建name列的索引,并查看当前表的所有索引。
我们再次查询name=诸葛亮1001的数据,发现查询时间为3ms。
三、其他
复合索引,1表示升序排序,-1表示降序排序
db.student.createIndex({
'name': 1, 'number': -1})
我们新增复合索引,查看当前索引,然后删除索引,再次查看当前索引,以验证创建复合索引和删除索引命令。
索引的可选参数
| 参数 | 类型 | 说明 |
|---|---|---|
| background | Boolean | 创建引的过程会阻塞其他数据库操作。background 设置为 true 指定以后台的方式创建索引。默认值为 false |
| unique | Boolean | 创建的索引是否唯一。默认值为 false |
| name | String | 索引的名称。默认值为 索引字段名_排序顺序 |
| dropDups | Boolean | 创建唯一索引时是否删除已经存在的记录。默认值为 false |
我们创建name列为唯一索引,并验证唯一索引是否生效。
边栏推荐
- Spark3.x entry to proficiency - stage 3 (in-depth analysis of the whole process of spark data processing)
- 【量化笔记】波动volatility相关技术指标以其含义
- How does Jenkins set the mailbox to automatically send mail?
- Network knowledge-04 network layer IPv6
- 泰坦尼克号乘客获救预测(进阶)
- Maxwell简介&使用
- Connaissance du réseau - 03 couche de liaison de données - PPPoE
- 3D可视化入门基础:看渲染管线如何在GPU运作
- Review of 4705 NLP
- 如何选择合适的模型
猜你喜欢

Spark3.x入门到精通-阶段七(spark动态资源分配)

Summary of Statistics for Interview

Pychart installation tutorial

fiddler 抓包工具使用

Spark3.x source code compilation

Edit close automatically generate configuration file when saving

High concurrency day04 (Zab protocol, observer, NC, Avro, RPC)

V2X测试系列之认识V2X第二阶段应用场景

面部关键点检测-CNN

Pytorch随记(2)
随机推荐
Network knowledge-03 data link layer PPP
Install SQL developer for Galaxy Kirin desktop operating system v10sp1 (x86)
Ivew shuttle box transfer component highlights the operation value
shader入门之基础光照知识
HMI概念设计的未来在哪里?
3D可视化入门基础:看渲染管线如何在GPU运作
MySQL decompression installation steps (Windows)
RNN卷积神经网络
Environment variables and folder placement location
机器学习之随机森林
Hypothesis testing
day01(Flume)
Slackware 14.2 installing KDE 5 plasma
Review of 4121 Computer System for Data Science
Typescript (TS loader, tsconfig.json and lodash)
Spark3.x source code compilation
Pytorch随记(2)
Canel-简介&使用
五十九 获取原型图大小
网络知识-03 数据链路层-PPP