MongoDB小结23 - 索引简介
2024-09-04 01:26:12
MongoDB中的索引,可以看作是书的目录。 想象一下给你一本没有目录的书,然后让你去查询指定内容,我只想说,我不是电脑,我很蛋疼! 让你翻没有目录的书,就跟让电脑查询没有索引的集合一样,从头查询到尾,毫无头绪,我们称这种行为是“表扫描”
索引简介
通常我们要查询一个user的名字,我们是这样的
db.user.find({"username":"codingwhy"})
如果我们经常需要对username进行查询,那么我们可以为它建立索引
db.user.ensureIndex({"username":1})
对于同一个集合,索引只需要创建一次,反复创建是徒劳的。
对某个键创建索引会加速对某个键的查询,然而,对于其他键可能没有帮助,即便是查询包含了该索引的键。
总是让电脑进行“毫无头绪”的表扫描也是挺折磨电脑的。 所幸MongoDB也不笨,它会在每次查询后,重排查询项的顺序,自己建立索引。 比如在进行这个查询时,{"x":"foo","y":"bar"},就已经有了 {"x":1,"y":1} 索引了。 每个集合的默认最大索引数是64个。
最新文章
- python网络编程——IO多路复用之epoll
- Zip加密
- Spring MVC Rest服务 返回json报406错误的解决办法
- 【HDU】2829 Lawrence
- Python批量修改文件名
- VC多线程的用法
- Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
- Ubuntu中root用户和user用户的相互切换
- 【leetcode❤python】326. Power of Three
- MyEclipse/Eclipse中XML文件的格式化配置
- wpf datagrid 行双击事件
- jquery form submit提交后无反应 不报错
- JS的string操作
- seg代码配置的踩坑记录
- 利用sqlmap注入测试
- oracle 12c多租户下的日常操作变化
- Jenkins自动化构建python nose测试
- EF5+MVC4系列(5) 删除的方法 1:系统推荐的先查询后remove删除的方法 2:自己new一个包含主键的类,然后 attach附加 remove删除;3:使用db.Entry 修改状态删除4:EntityState的几种状态
- spring之IOC模拟实现
- WCF、WebAPI、WCFREST、WebService之间的区别【转】
热门文章
- 移动端 H5 拍照 从手机选择图片,移动端预览,图片压缩,图片预览,再上传服务器
- IE主页被恶意修改处理办法
- MyHome3D在线装修设计软件测评
- vue动态设置页面title方法
- ALTER SEQUENCE - 更改一个序列生成器的定义
- 第一天 初识Python
- 解决【npm ERR! Unexpected end of JSON input while parsing near '...sh_time";:141072930277'】方案
- 01XML文档结构
- 基于js插件的文件上传
- Qt的widget与Button添加图片