ReadItemAsync 与 GetItemLinqQueryable?

Bra*_*ees 4 azure-cosmosdb

有没有人对这两种从 CosmosDB 检索单个对象的方法进行过分析?

container.ReadItemAsync<Device>("devices", new PartitionKey(deviceId), null, default);
Run Code Online (Sandbox Code Playgroud)

VS

container.GetItemLinqQueryable<Device>(true).Where(a => a.DeviceId == deviceId).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

我的猜测是 ReadItemAsync 更快,但有人确定吗?

Mat*_*nta 5

ReadItemAsync 不仅更快,而且更便宜。

ReadItem 执行点读取操作,根据项目的大小使用固定数量的RU(请求单位)。如果项目大小不变,操作将始终消耗相同的 RU。

ItemLinqQueryable 执行一个查询,这将消耗更多的 RU(这些可能会有所不同),这取决于配置的索引策略。