MongoDB_07之索引
来源:互联网 发布:iphone必备软件推荐 编辑:程序博客网 时间:2024/06/03 22:45
1.创建简单的索引 为name建索引 db.persons.ensureIndex({name:1}) //1表示正序,-1表示倒序2.索引使用需要注意的地方 2.1.创建索引的时候需注意1表示创建正序索引,-1表示建倒序索引 2.2.索引的创建在提高查询性能的同时会影响插入的性能 对于经常查询少插入的文档中可以考虑用索引 符合索引要注意索引的先后顺序 每个键全建立索引不一定能提高性能(合理创建索引) 在做排序工作的时候如果是超大数据量的时候可以考虑加上索引,用来提高排序的性能3.索引的名称 3.1 给哪个键建立索引,默认一般都是该键_1或该键_-1就是它的名称 3.2但也可以指定索引的名称,例如:给某个字段创建索引的同时指定索引的名字 db.persons.ensureIndex({name:-1},{name:"personName"})4.唯一索引 解决集合persons中不能插入重复的数值 则建立唯一索引 db.persons.ensureIndex({name:-1},{unique:true})5.剔除重复值 如果建立唯一索引之前已经有重复数值的处理(剔除重复值) db.persons.ensureIndex({name:-1},{unique:true,dropDups:true})6.强制查询指定的索引(hint) db.persons.find({name:"1person",_id:1}).hint({name:-1}) //指定的索引必须是已经创建了的索引,name是建立了倒序索引的字段7.Expain 详细查看本次查询使用哪个索引和查询数据的状态信息 db.persons.find({name:"1person"}).explain()8.system.indexes 在shell查看数据库已经建立的索引 db.system.indexes.find() db.system.namespaces.find()9.执行创建索引的过程会暂时锁表如何解决? 为了不影响查询,我们可以让索引的创建过程发生在后台 db.persons.ensureIndex({name:-1},{background:true}) //在name这个字段上创建索引,并发生在后台10.删除索引 批量删除索引 db.runCommand({dropIndexes:"person",index:"*"}) 精确删除索引 db.runCommand({dropIndexes:"persons",index:"name_-1"})
0 0
- MongoDB_07之索引
- 搜索引擎索引之索引基础
- 搜索引擎索引之索引基础
- 索引类型之虚拟索引
- MySQL索引之组合索引
- MySQL索引之单列索引
- MongoDB 索引之全文索引
- mysql索引之聚集索引
- mysql索引之聚集索引
- 数据结构:索引之线性索引
- MySQL索引之主键索引
- SQL之索引
- SQL之索引
- SQL语法之索引
- oracle之索引
- 数据库之索引知识
- 漫谈数据库之索引
- SQL 优化之索引
- static_cast, dynamic_cast, const_cast探讨
- Libxml2在linux下的使用
- leetcode -day20 Add Two Numbers
- 废话方规划法规好地方和地方该回复
- 《老罗Android》学习之HTTP (二) POST和GET提交数据
- MongoDB_07之索引
- Java关键字transient和volatile小结
- Leveldb实现原理
- 《Javascript权威指南》学习笔记之七:面向对象编程(OOP)
- 多重背包模板
- Mac下暗黑服务器搭建(完全攻略,一个菜鸟的搭建之路)
- ubuntu限制本地网速
- cocos2dx-3.0 与 vs2013整合
- XML基础