千家信息网

怎么在MongoDB中创建索引

发表于:2024-10-20 作者:千家信息网编辑
千家信息网最后更新 2024年10月20日,这期内容当中小编将会给大家带来有关怎么在MongoDB中创建索引,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。MongoDB 创建索引的语法1.为普通字段添加索引,
千家信息网最后更新 2024年10月20日怎么在MongoDB中创建索引

这期内容当中小编将会给大家带来有关怎么在MongoDB中创建索引,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

MongoDB 创建索引的语法

1.为普通字段添加索引,并且为索引命名

db.集合名.createIndex( {"字段名": 1 },{"name":'idx_字段名'})

说明: (1)索引命名规范:idx_<构成索引的字段名>。如果字段名字过长,可采用字段缩写。

(2)字段值后面的 1 代表升序;如是 -1 代表 降序。

2.为内嵌字段添加索引

db.集合名.createIndex({"字段名.内嵌字段名":1},{"name":'idx_字段名_内嵌字段名'})

3.通过后台创建索引

db.集合名.createIndex({"字段名":1},{"name":'idx_字段名',background:true})

4:组合索引

db.集合名.createIndex({"字段名1":-1,"字段名2":1},{"name":'idx_字段名1_字段名2',background:true})

5.设置TTL 索引

db.集合名.createIndex( { "字段名": 1 },{ "name":'idx_字段名',expireAfterSeconds: 定义的时间,background:true} )

说明 :expireAfterSeconds为过期时间(单位秒)

MongoDB创建索引性能提升1000倍

上面我们介绍了MongoDB的常见索引的创建语法。部分同学还想看看MongoDB的威力到底有多大,所以,在这儿追加一个例子,感受一下索引的性能。

通过在某一字段上创建索引,从优化前的执行15.15S到优化后降至0.013S,性能提升了1000多倍。

此为实际生产中的一个真实案例,我们有一个集合QQStatements,其数据量为2604W,如下图所示。

系统需要查询此表最近的变动情况,即需要抓取新增数据量和修改的数据量。

查询语句如下:

db.QQStatements.find({ $or: [  {Rec_CreateTime:{$gt: ISODate("2019-01-07 16")}}  ,{Rec_ModifyTime:{$gt: ISODate("2019-01-07 16")}}  ] } )

但此查询语句不理想,有时耗时25S,多次执行有缓存后也要15S左右,如下图:

查看此表,发现Rec_CreateTime字段建有索引,单独执行符合Rec_CreateTime 条件的语句,很快 0.1 S 内就执行完成。

而Rec_ModifyTime字段没有索引,单独执行符合Rec_ModifyTime条件的语句较慢,需要15S左右。

到这儿,就可以判读出问题是缺失索引,和开发同学确认后,此场景时常用,此字段需要添加索引。

执行添加索引的命令:

db.QQStatements.createIndex({"Rec_ModifyTime":1},{"name":'idx_Rec_ModifyTime',background:true})

Rec_ModifyTime字段添加索引后,整个语句执行降至0.013S(20S-->0.02S )

上述就是小编为大家分享的怎么在MongoDB中创建索引了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

字段 索引 语句 性能 数据 查询 中创 代表 内容 同学 时间 条件 语法 分析 普通 中小 例子 内容丰富 升序 单位 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 长虹天宫中标中国电信服务器 智慧城市网络安全创新案例 淄博软件开发工程师招聘信息 深信服良材网络安全学院 百度云服务器租赁价格表 pc可以使用ps4服务器吗 服务器 长连接 网络安全问题心理健康 新乡美腾网络技术有限公司 网络安全广西就业前景 农安先进网络技术服务保障 keep服务器显示异常 四级数据库技术好考吗 服务器被炸还被调成访客怎么办 svn建立数据库 网络安全法内容简介 数据库有哪些种类特点 什么在履行网络安全监管 华北工控服务器指示灯 淮北点餐系统软件开发公司哪家好 深信服网络安全如何 网络安全证书异常无法登录 数据库外键 用整型还是字符 同一服务器可以不同cpu吗 江苏特种网络技术服务市场价 软件开发过程中的基本活动 海珠区国内网络技术开发服务价格 临床论文编数据库 有关网络安全的海报 简单的服务器部署需要多少费用
0