在RavenDB 3.x文档中,有多篇文章涉及在索引中存储字段值的概念,因此变换器可以从索引本身获取此数据,而不必加载文档。
但是,没有提到这样做的确切含义,而且我不清楚在哪种情况下这会带来好处而不是过多的开销。
文档基本上是这样说的:
预测和存储字段
如果投影功能仅需要存储的字段,则不会从存储中加载文档,并且所有数据都将直接来自索引。在不需要整个文档的情况下,这可以提高查询性能(通过所使用的磁盘空间的成本)。
(Indexes/Querying/Projections中的indexes/storing data in indexes或多或少相同
阅读时我读了它,它并不值得关注,但在阅读 Query Flow 时,我更加确信使用它。
如果我理解正确,那么当使用带有存储的投影+索引时,你可以让查询根本无法从存储中检索文档,但代价是磁盘空间?
假设这是正确的:
我认为直观的是,如果您的文档包含10个数字字段,并且您将其中4个存储在索引中,则需要大约40%的磁盘空间?但是,在使用该索引查询文档时,您还需要只读取40%的文档吗?
答案 0 :(得分:3)
一般来说,不要打扰。 这适用于非常具体的情况,通常不值得。除非你有非常大的文档(数百KB),否则在不使用索引存储或使用变换器的情况下使用投影会更容易。