MongoDB学习笔记<六>
继续mongoDB的学习
--索引具体解释
--索引管理
--空间索引
1.创建简单索引
(1)先准备20万条数据
for(var i = 0;i< 200000;i++){
db.books.insert("number":i,"name":i+"book")
}
(2)检查一下查询性能
var start = new Date()
db.books.find({"number":123456})
var end = new Date();
end - start
(3)为number创建索引
db.books.ensureIndex({"number":}) 此处1代表正序,-1代表倒序
2.须要注意的地方
-索引的创建在提升查询性能的同一时候会影响插入的性能
-对于常常查询少插入的文档能够考虑使用索引
-每一个键都建立索引不一定能够提高性能
-在做排序工作时,假设是大数据量也能够考虑索引
3.创建索引时能够同一时候指定索引的名字
db.books.ensureIndex({"name":1},{name:"bookname"})
4.唯一索引
怎样解决集合books不能插入反复的文档
建立唯一索引:db.books.ensureIndex({"name":1},{unique:true})
5.剔除反复值
假设建立唯一索引之前,已经有反复文档,怎么办?
db.books.ensureIndex({"name":1},{unique:true,dropDups:true})
6.hint
怎样强制查询使用指定的索引
db.books.find({"name":"obook"}).hint({"name":1})
指定索引必须是已经创建好了的索引
7.explain
怎样具体的查看本次查询使用哪个索引和查询数据的状态信息
db.books.find({"name":"0book"}).explain()
8.索引的创建过程在后台运行
db.books.ensureIndex({"name":"0book"},{bookground:true})
9.删除索引
db.runCommand({dropIndexes:"books",index:"name_1"})精确删除
db.runCommand({dropIndexes:"books",index:"*"})全部都删除
最新文章
- jvm内存区域
- Azure ARM (11) ARM模式下,创建虚拟机并配置负载均衡器
- 浅谈JSON数据解析方法
- nodeJS Express 删除 x-powered-by
- [转帖]DAS、NAS、SAN、iSCSI 存储方案概述
- Android广播BroadcastReceiver 一
- when compile /home/wangxiao/NVIDIA-CUDA-7.5 SAMPLES, it warning: gcc version larger than 4.9 not supported, so: old verson of gcc and g++ are needed
- JavaScript高级程序设计之函数
- 【狼】unity3d iTween插件的学习
- 如何写一个网页标题title的闪动提示
- mysql数据库中列转行
- svn在linux下的使用(svn命令行)ubuntu 删除 新增 添加 提交 状态查询 恢复
- python的re正则表达
- dubbo本地服务化实现(dubbo三)
- C++设计模式——备忘录模式
- 信号基础知识--FFT DFT
- c++优先队列(堆)
- WordPress后台的文章、分类,媒体,页面,评论,链接等所有信息中显示ID并将ID设置为第一列
- go_封装
- 分布式系统漫谈一 —— Google三驾马车: GFS,mapreduce,Bigtable
热门文章
- Java反射获取类对象的三种方式
- 更新到xcode10以后出现几个无奈的问题,谨已此篇告诫广大ioser升级请慎重
- Codeforces Gym 101471D Money for Nothing(2017 ACM-ICPC World Finals D题,决策单调性)
- POJ 2505 A multiplication game [博弈]
- ZFS -世界上最高级的文件系统之一
- html中常用的标签小结
- 查看linux 系统 当前使用的网卡
- phpexcel设置所有单元格的默认对齐方式
- 利用js实现table增加一行
- JDK8 下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html