mongo shell 之文档 索引
来源:互联网 发布:s曲线加速算法 博客 编辑:程序博客网 时间:2024/06/08 08:26
对集合创建索引,能大大提升查询查询效率,尤其是对于mongodb 这种存储大数据的数据库,但是并不是索引建的越多越好,集合建立索引,会增加插入和更新,删除时的性能开销,所以,建立索引一定要合理. mongodb 的索引功能是很强大的, 不仅可以对文档的熟悉建立索引,还可以给文档的子文档,数组创建索引, 还可以创建2d索引
1. 创建索引:
命令格式: db.[collection].ensureIndex({索引字段},{参数})
1. 创建普通索引: db.student.ensureIndex({name:-1}) //为student 集合创建 name 倒序索引,所以名称默认为: name_-1
2. 创建唯一索引: db.student.ensureIndex({name:1},{unique:true}) //为student 集合创建name 正序索引, 索引名称默认为: name_1
尝试插入重复name 的文档,会报错
3. 后台创建索引: db.student.ensureIndex({name:-1},{unique:true,backgroud:true}) //创建索引时会锁集合,让其后台去创建,不锁集合
ensureIndex() 方法可接受的参数:
2. 查询集合索引:
命令格式: db.[collection].getIndexes()
3. 查询时强制使用索引:
命令格式: hint(索引信息), 通过explain() 中的indexName 可以看到查询所使用的索引是什么
4. 删除索引:
命令格式: db.runCommand({dropIndex:"colName",index:"indexName"})
5. 索引性能简单测试:
1. 插入20w 的测试数据:
var start = new Date()
for(var i=0; i<200000; i++){
db.students.insert({_id:i,number:i})
}
var end = new Date()
end-start
2. 未创建索引时查询:
3. 创建number 的正序索引
4. 创建索引后查询, 如果想看是否使用了索引,可以使用 explain() 方法:
- mongo shell 之文档 索引
- mongo shell 之文档 更新
- mongo shell 之文档 查询
- mongo shell 之索引-高级索引
- mongo shell 之索引 -- 2D索引,全文索引
- mongo shell 之集合&文档 插入&删除
- mongo shell 之文档 分页&排序
- mongo shell 之文档 固定集合
- mongo shell 之文档 用户管理
- MongoDB文档翻译-mongo Shell
- mongo shell 之数据类型
- MongoDB文档翻译-mongo Shell-配置mongo Shell
- MongoDB文档翻译-mongo Shell-使用mongo Shell帮助
- MongoDB文档翻译-mongo Shell-给mongo Shell编写脚本
- mongo shell 之 基础操作
- mongo shell 之 GridFS 文件系统
- mongo shell 高级之 分片
- mongo索引
- Selenium
- 《WINDOWSPE权威指南》学习笔记(三)- 导入表相关机制
- (复习)图论--最短路--SPFA算法
- mongo shell 之文档 分页&排序
- [POJ3274]-Gold Balanced Lineup
- mongo shell 之文档 索引
- sikulix
- HDU-2188-悼念512汶川大地震遇难同胞——选拔志愿者(巴什博弈)
- LBP 源码分析
- parent\manager\manager-pojo\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径。)
- mongo shell 之索引 -- 2D索引,全文索引
- 对加速度二次积分求位移
- win10下安装theano和实现GPU加速
- 论ApkTool二次打包的坑