MongoDB 索引的行为与限制

MongoDB 索引的行为与限制

要特别注意以下的索引行为限制:

  • 一个 collection 的索引不能超过 64 个;

  • 索引键值不能超过1024个字节;(<key, value>, value 的长度不能超过1024字节)

    一个 Document  不能索引键值长度超过了最大长度的 fields

    要查询键值太大而无法编制索引的文档,可以使用类似于以下内容的命令:

    db.myCollection.find({<key>: <value too large to index>}).hint({$natural: 1})
    
  • 索引的名字,包括命名空间必须少于128个字符;

  • 索引有存储要求,在一定程度上它会影响 insert/update 操作;

  • 创建索引支持查询或者其它操作,但一定不要保留 MongoDB 实例不会用到的索引;

  • 复合索引(Compound indexes)不支持对复合域的真子集域索引;

    以下内容是创建复合索引的命令:

    db.products.ensureIndex( { "item": 1, "location": 1, "stock": 1 } )

    上述查询,支持对 item 域的索引;支持 item, location域的索引;

    不支持仅对 location 域的索引;

    不支持仅对 stock域的索引;

    不支持仅对 item,stock 域的索引;

    不支持仅对 location,stock域的索引;

  • 对于$or  操作符,每个 $or  查询操作并行执行,它们可以使用不同的索引;

  • 对于同时使用了  sort()  方法 和 $or 操作符的查询,这个查询将不能使用 $or 域的索引;

  • 2d geospatial queries 不支持 $or 操作。

资料参考

Index Behaviors and Limitations》 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值