LoadStartingWith在RavenDb中的表现

The performance of LoadStartingWith in RavenDb

我对 LoadStartingWith 性能有理论上的担忧。让我们以 documentation 为例:

BlogPost[] prefixedResultsWithMatch = session.Advanced
    .LoadStartingWith<BlogPost>("blogposts/1", "*/Author/*t");

所以我们没有索引。这 "query" 直接去商店。它如何有效地执行它(没有全扫描)?在 RavenDb 或存储(esent,Voron)级别是否有 ids 的任何内部索引?

据我所知,Raven 始终将文档 ID 编入索引。

如果您在不带任何查询参数的类型上执行查询,Raven 不必创建自动索引,因为指向实际文档的 ID 已经为 Raven 所知。

所以这与不使用索引的 "load query" 有点相同。

按照它的工作方式,我们有前缀和 id 的索引。 因此我们只能扫描与您提供的前缀匹配的文档。 但是我们必须将它们中的每一个都与您拥有的过滤器相匹配。