執行動態查詢時,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