mongodb的索引
一,索引分为:单字段索引,复合索引,多key索引,文档索引等等
1,单字段索引(Single Filed Index)
命令:db.person.createIndex( {age: 1} )
解释:
person: 指collection ,可以理解为关系型数据库的表,
createIndex
:创建索引的方法,
age: 需要加索引的字段,
1 :表示升序,-1表示降序,这个对于单字段表现的都差不多
默认的_id 也是单字段索引
2,复合索引(Compound Index)
查询过程:会先按照第一个字段排序,当第一个字段一样的时候,按照第二个字段排序,一次类推
命令:db.person.createIndex( {age: 1, name: 1} )
注意:在创建复合索引,根据数据场景和数据的分布情况,选择不同的字段在前面,会出现不同的查询速度,没有真实测试过,
3,多Key索引(Multikey Index)
当为collection中某个字段创建索引时,这个字段是数组,将会自动创建多key索引,即为这个字段的数组的每个元素创建索引,这个可以的场景:不用喜好的人,不用标签分类的书籍等,使用
多个标签或者关键字的collection,
4, 哈希索引(Hash Index)
以某个字段的哈希值做索引,字段完全匹配时使用
5.地理位置索引(Geospatial Index)
在O2O场景中使用
6,文本索引(Text Index)
在快速查询文本中使用,以一个文本的内容创建索引
二,索引的一些额外属性
1,唯一索引
2,TTL索引
3,部分索引
4,稀疏索引