MongoDB索引Index
索引概述
索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录
这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对应用的性能是非常致命的
创建索引
MongoDB使用 createIndex() 方法来创建索引
db.集合名.createIndex(keys, options)
语法中 Key 值为要创建的索引字段,1 为指定按升序创建索引,如果想按降序来创建索引指定为 -1 即可
注意
- 在 3.0.0 版本前创建索引方法为 db.collection.ensureIndex(),之后的版本使用了 db.collection.createIndex() 方法,ensureIndex() 还能用,但只是 createIndex() 的别名
- MongoDB默认所有的集合在_id字段上有一个索引。
样例
db.person.createIndex({"name":1})
索引的查看
默认情况下_id是集合的索引,查看方式:
db.集合名.getIndexes()
删除索引
语法
db.集合名.dropIndex({'索引名称':1})
样例
db.person.dropIndex({name:1})
db.person.getIndexes()
检测索引的速度优势
测试:插入10万条数据到数据库中
插入数据:
for(i=0;i<100000;i++){db.t1.insert({name:'test'+i,age:i})}
创建索引前:
db.t1.find({name:'test10000'})
db.t1.find({name:'test10000'}).explain('executionStats') # 显示查询操作的详细信息
创建索引:
db.t1.creatIndexIndex({name:1})
创建索引后:
db.t1.find({name:'test10000'}).explain('executionStats')
//////////////////////
//创建索引
db.person.createIndex({'name':1});
//查看索引
db.person.getIndexes();
//删除索引
db.person.dropIndex({'name':1});
//测试索引可以提高搜索速度
for(i=0;i<10000;i++){
db.t1.insert({'name':'test'+i,'age':i})
};
db.t1.find();
db.t1.find({'name':'test999'}).explain('executionStats');
db.t1.getIndexes();
db.t1.createIndex({'name':1});
db.t1.getIndexes();
db.t1.find({'name':'test999'}).explain('executionStats');
标签:Index,name,索引,MongoDB,db,person,createIndex From: https://www.cnblogs.com/jiangjiayun/p/17515080.html