慕雪6442864
MongoDB以某种方式连接复合密钥,并将其用作BTree中的密钥。在找到单个项目时-树中节点的顺序无关。如果要返回一系列节点-相互靠近的元素将沿着同一棵树的枝条向下移动。节点在此范围内越近,其检索速度就越快。单字段索引-命令不重要如果它们在提升顺序上接近在一起,它们也将以降序紧密地在一起。当你有一个复合钥匙-命令开始起作用了。例如,如果键为A升序B,索引可能如下所示:Row A B1 1 12 2 63 2 7 4 3 45 3 56 3 67 5 1对A、升序B降序的查询将需要跳过索引,以返回行,并且速度更慢。例如,它将返回行1, 3, 2, 6, 5, 4, 7与索引相同的Range查询将按正确的顺序顺序返回行。在BTree中查找记录需要O(log(N))时间。按顺序查找记录范围仅为OLog(N)+k,其中k是要返回的记录数。