本博客在听完慕课-入门mongodb这门课后所写
在数据量较小时,不使用索引也可以查询的很快,但是在数据量很大时,就要使用索引提高效率了。
1.db.demo.getIndexes() 可以表中所包含的索引
可以看到 key的集合中包含_id ,就是说表中默认的索引就是_id
2.db.demo.ensureIndex({x:1})
x是1 正向排序
x是-1逆向排序
注意:在创建索引的时候,使用数据库之前就要创建,不可以使用的时候创建,会严重影响数据库性能,一般索引再插入数据后在创建,可能会对数据库写入有影响,但是可以忽略。
使用索引查询数据时,性能会大幅度提升。
索引可以重复创建,如果重复创建,会直接返回成功。
3,_id 索引的使用
他是很多集合默认建立的唯一索引
4.单键索引
db.demo1.ensureIndex({x:1})
值为单一的值
5.多键索引
与单键不同点就是:值具有多个记录,例如数组,集合等
当叉入这条数据后,mongo就会认为x是多键索引。
6.复合索引
个人感觉,就是为查询多个属性值建立的索引。没什么不同。
7.过期索引
一段时间后会过期的索引,过期后会被删除,适合存储登录信息,日志等
db.demo1.ensureIndex({qqq:1},{expireAfterSeconds:10})
第二个参数是该索引的过期时间,就是说插入的数据会在这段时间后被删除。
没更完。。有空在更!