【MongoDB学习笔记21】MongoDB的复合索引
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,索引的值是按照一定顺序排列的,因此使用索引键对文档进行搜索排序比较快;但是只有首先使用索引进行排序时,索引才有用;例如下面的排序里,"username"上的索引就没有起作用:> db.users.fi
千家信息网最后更新 2025年01月19日【MongoDB学习笔记21】MongoDB的复合索引
索引的值是按照一定顺序排列的,因此使用索引键对文档进行搜索排序比较快;但是只有首先使用索引进行排序时,索引才有用;
例如下面的排序里,"username"上的索引就没有起作用:
> db.users.find().sort({"age":1,"username":1})
上面的命令中先根据age排序,在根据username排序,所以username作用并不大。为了优化这个排序,需要在age和username上建立索引:
> db.users.ensureIndex({"age":1,"username":1})
这样就在users集合上建立了一个复合索引(compound index),复合索引就是一个建立在多个字段上的索引。
一、选择索引的方向
索引默认是升序的,在多索引查询的时候,可能需要让索引键的方向不同。例如:
> db.users.ensureIndex({"age":1,"username":-1})
或者
> db.users.ensureIndex({"age":-1,"username":1})
二者是等价的;
年龄按照0-9的顺序排序,在每个年龄分组中安装Z-A的顺序排列;或者用户名按照A-Z的顺利排序,在每个用户分组中按照9-0排序的。
二、使用隐式索引
复合索引在对不同的查询可以表现为不同的索引。如果有一个{"age":1,"username":1}索引,age字段会自动被排序,好似有个{"age":1}的索引;
可以推论,如果有{"a":1,"b":1…….."z":1}的索引,就会有{"a":1},{"a":1,"b":1},{"a":1,"b":1,"c":1}….一系列的索引;
但是,{"b":1}或者{"b":1,"c":1}就不能作为索引来优化查询,意味着只能只能按照索引顺序来优化查询。
索引
排序
顺序
查询
不同
作用
字段
年龄
方向
用户
面的
分组
不大
升序
只有
命令
多个
就是
意味
文档
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发公司能运行
工控系统网络安全的重要性
聊城市公安局网络安全项目
南通佳录互联网科技有限公司
达州网络技术产品介绍
信息技术类数据库过关
杭州云付呗网络技术有限公司
本机ftp服务器
四川专业软件开发定制费用
网络安全宣传周 校园日
国泰安数据库拼音
未转变者怎么设置服务器模式
扬州银联软件开发经验丰富
华为网络技术大赛晋级
万方数据库使用的心得体会
网络技术部部门总结
工商软件开发中心校招笔试
中荷网络安全合作
安徽服务器硬盘多少钱
移动通信网络技术的用户运营
莲花收费所网络安全
东营分销软件开发系统
师生网络安全风险
朝阳分局网络安全保卫
南京软件开发服务资质三级认证
飞机大战怎么连接数据库
网络技术专业有什么前景
饥荒联机版专用服务器管理员权限
蓝运方小网络技术有限公司
网络安全留言用语