执行动态查询时,RavenDB通常会创建一个临时索引。RavenDB是否内部优化“获取文档ID”类型的查询?
检索文档通过其Id
不会触发此行为:
var entity = documentSession.Query<Entity>().Single(x => x.Id == 1);
确实RavenDB具有一个内置的优化这种类型的查询?
执行动态查询时,RavenDB通常会创建一个临时索引。RavenDB是否内部优化“获取文档ID”类型的查询?
检索文档通过其Id
不会触发此行为:
var entity = documentSession.Query<Entity>().Single(x => x.Id == 1);
确实RavenDB具有一个内置的优化这种类型的查询?
Arnold, 不,它的确不是而是优化了这种行为。
你的假设是错误的,因为它会创建一个临时索引。如果您的示例其名称应该是“Temp/Entities/By__document_id”
Raven Studio没有显示这样的索引。 – 2012-01-30 11:57:44
我刚试过 - 我有这个索引在我的情况。也许你有另一个已经包含Id属性的索引,因此查询优化器将使用这个索引而不是创建一个新的临时索引。但是,当您有一个新的空乌鸦实例时,它将创建一个临时索引。 – 2012-01-30 13:33:30
在我的情况下,它不会创建一个在Raven Studio中可见的临时索引。运行时的索引名称是“Dynamic/Entities” – 2012-01-30 14:06:10
var entity = documentSession.Load(1);没有做临时索引,并且速度非常快,我找到了。 –
Phil
2012-01-30 11:17:39