您可以在mongodb复合索引中指定的列数是否有限制?

时间:2013-05-29 09:33:23

标签: mongodb

index_dict = {
        "column_7" : 1,
        "column_6" : 1,
        "column_5" : 1,
        "column_4" : 1,
        "column_3" : 1,
        "column_2" : 1,
        "column_1" : 1,
        "column_9" : 1,
        "column_8" : 1,
        "column_11" : 1,
        "column_10" : 1
}

db.dataCustom.ensureIndex(index_dict, {unique: true, dropDups: true})

index_dict的限制是多少列?我需要知道它的实现,但我无法在线找到答案

2 个答案:

答案 0 :(得分:3)

集合可能不超过64个索引。更多详情Herelimitation

但我想知道你为什么要这么多索引?

修改

复合索引中的字段不能超过31个。

答案 1 :(得分:2)

我必须诚实,我知道对列数没有限制。但是存在逻辑限制。

索引是一件非常沉重的事情,在集合上放置一个巨大的,甚至接近表长度索引会产生性能问题。更具体地说,你的索引在空间和价值方面都是如此之大。

这一点,你必须要注意。但是要回答你的问题:我知道没有限制。索引中的每个字段大小都有一个限制(1024个字节,包括名称),但我知道索引中的列数没有。

修改

看来我写这个答案的速度有点快,有31个字段的限制:http://docs.mongodb.org/manual/reference/limits/#Number%20of%20Indexed%20Fields%20in%20a%20Compound%20Index我想我从来没有达到这个数字:/