正如MS支持人员最近告诉我的那样,在RU的使用中,使用“ GET”比使用SQL查询要有效得多。我想知道是否可以(在azure.cosmos python程序包或对REST API的自定义HTTP请求中)通过其唯一的“ id”字段(我为之生成了GUID)来获取文档,而无需进行SQL查询。>
所示的每个示例都使用文档的链接/路径,该链接/路径是使用文档的“ _rid”元数据构建的,而不是在创建文档时设置的“ id”字段。
我使用编写的大容量upsert存储过程来创建新文档,并且从不检索每个文档的元数据(我有大约1亿个文档),因此检索_rid等同于检索文档本身。
答案 0 :(得分:2)
ReadDocument
方法比SQL查询高效得多的原因是因为它使用_rid
而不是用户生成的字段,甚至是必需的id字段。这是因为_rid
不仅是唯一的值,而且还encodes information关于该文档的物理存储位置。
举一个例子,假设您正在向某人解释这个周末的聚会。您可以使用房子的名称“我的朋友瑞安的房子”,也可以使用地址“西澳大利亚州11111某处街道123 ThatOne Street”。它们都是唯一的标识符,但是对于试图到达那里的人来说,效率要比另一个高。
告诉某人去您朋友的房子就像使用您自己的id
。它确实映射到一所特定的房子,但是该人仍然需要找出实际到达那里的位置。使用地址就像使用_rid
字段一样。仅凭这些信息,他们就可以到达聚会地点。当然,在现实世界中,此人可能需要指示,但数据库中的数据存储比大多数城市街道都井井有条,因此地址足以检索文档。
如果您想利用此方法,则需要找到一种使用_rid
字段的方法。