mongodb索引

mongodb的速度很大程度上取决于mongo的hash设计,而与此关系最密切的就是mongo的索引。

查看索引

> db.user.getIndexSpecs() 
or
> db.user.getIndexes() 

id索引

默认创建 _id

单键索引

  • 创建索引:
db.user.ensureIndex({x:1})

索引可以重复创建,如果索引已存在,则直接返回成功

多键索引

创建形式与单键索引相同,区别在于字段的值
单键索引的值为单一的值
多键索引为多个值,例如数组
例:当x有索引时:当插入> db.user.insert({x:[12,34,55,66]}),便创建的多键索引

复合索引

插入:

> db.user.insert({x:[12,34,55,66]})
WriteResult({ "nInserted" : 1 })
> db.user.ensureIndex({x:1,y:1})
{
    "createdCollectionAutomatically" : false,
    "numIndexesBefore" : 2,
    "numIndexesAfter" : 3,
    "ok" : 1
}
> db.user.getIndexes()
[
    {
        "v" : 2,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "blog.user"
    },
    {
        "v" : 2,
        "key" : {
            "x" : 1
        },
        "name" : "x_1",
        "ns" : "blog.user"
    },
    {
        "v" : 2,
        "key" : {
            "x" : 1,
            "y" : 1
        },
        "name" : "x_1_y_1",
        "ns" : "blog.user"
    }
]
>

个人博客:http://notes.xbug.site

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 索引能够提高数据库的查询效率,没有索引的话,查询会进行全表扫描(scan every document in...
    zhglance阅读 2,070评论 0 6
  • 前言 在MongoDB中,索引通常能够极大的提高查询的效率。如果没有索引,MongoDB在读取数据时必须扫描集合中...
    honehou阅读 1,423评论 0 1
  • Mongodb索引及查询优化分析 创建索引 参数说明:keys: {FieldNameOne:ascending,...
    liudongdong阅读 4,343评论 1 8
  • 索引的作用是用来加速查询,数据库索引与书籍索引类似,创建数据库索引好像确定何如组织书的索引一样。 explain ...
    JunChow520阅读 1,940评论 0 0
  • 1、_id索引: 自动创建 2、单键索引: 【值为一个单个的值,例如字符串、数字或者日期】db.nums.in...
    Uzero阅读 793评论 2 0