MongoDB中的索引,可以看作是书的目录。 想象一下给你一本没有目录的书,然后让你去查询指定内容,我只想说,我不是电脑,我很蛋疼! 让你翻没有目录的书,就跟让电脑查询没有索引的集合一样,从头查询到尾,毫无头绪,我们称这种行为是“表扫描”

索引简介

通常我们要查询一个user的名字,我们是这样的

db.user.find({"username":"codingwhy"})

如果我们经常需要对username进行查询,那么我们可以为它建立索引

db.user.ensureIndex({"username":1})

对于同一个集合,索引只需要创建一次,反复创建是徒劳的。

对某个键创建索引会加速对某个键的查询,然而,对于其他键可能没有帮助,即便是查询包含了该索引的键。

总是让电脑进行“毫无头绪”的表扫描也是挺折磨电脑的。 所幸MongoDB也不笨,它会在每次查询后,重排查询项的顺序,自己建立索引。 比如在进行这个查询时,{"x":"foo","y":"bar"},就已经有了 {"x":1,"y":1} 索引了。 每个集合的默认最大索引数是64个。

最新文章

  1. python网络编程——IO多路复用之epoll
  2. Zip加密
  3. Spring MVC Rest服务 返回json报406错误的解决办法
  4. 【HDU】2829 Lawrence
  5. Python批量修改文件名
  6. VC多线程的用法
  7. Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
  8. Ubuntu中root用户和user用户的相互切换
  9. 【leetcode❤python】326. Power of Three
  10. MyEclipse/Eclipse中XML文件的格式化配置
  11. wpf datagrid 行双击事件
  12. jquery form submit提交后无反应 不报错
  13. JS的string操作
  14. seg代码配置的踩坑记录
  15. 利用sqlmap注入测试
  16. oracle 12c多租户下的日常操作变化
  17. Jenkins自动化构建python nose测试
  18. EF5+MVC4系列(5) 删除的方法 1:系统推荐的先查询后remove删除的方法 2:自己new一个包含主键的类,然后 attach附加 remove删除;3:使用db.Entry 修改状态删除4:EntityState的几种状态
  19. spring之IOC模拟实现
  20. WCF、WebAPI、WCFREST、WebService之间的区别【转】

热门文章

  1. 移动端 H5 拍照 从手机选择图片,移动端预览,图片压缩,图片预览,再上传服务器
  2. IE主页被恶意修改处理办法
  3. MyHome3D在线装修设计软件测评
  4. vue动态设置页面title方法
  5. ALTER SEQUENCE - 更改一个序列生成器的定义
  6. 第一天 初识Python
  7. 解决【npm ERR! Unexpected end of JSON input while parsing near '...sh_time":141072930277'】方案
  8. 01XML文档结构
  9. 基于js插件的文件上传
  10. Qt的widget与Button添加图片