美文网首页
mongo $nin 查询缓慢 超时504问题

mongo $nin 查询缓慢 超时504问题

作者: a9b854aded01 | 来源:发表于2020-04-21 14:23 被阅读0次

何时不应该使用索引

提取较小的子数据集时,索引非常有效(所以才有了分页)。也有一些查询不使用索引会更快。结果集在原集合中所占的比例越大,查询效率越慢。因为使用索引需要进行两次查找:一次查找索引条目,一次根据索引指针去查找相应的文档。而全表扫描只需要进行一次查询。在最坏的情况,使用索引进行查找次数会是全表扫描的两倍。效率会明显比全表扫描低。
可惜并没有一个严格的规则可以告诉我们,如果根据索引大小、文档大小来判断什么时候索引很有用,一般来说,如果查询需要返回集合内30%的文档(或者更多),那就应该测试全表扫描和走索引查询那个速度比较快。这个数字也会在2%~60%之间进行波动。
这个时候可以使用hint({"$natural":true})强制查询走全表扫描。

$nin操作需要扫描全表,没有索引反而更快

原文参考https://blog.csdn.net/weixin_30263073/article/details/99445095

相关文章

网友评论

      本文标题:mongo $nin 查询缓慢 超时504问题

      本文链接:https://www.haomeiwen.com/subject/fhsdwctx.html