gpt4 book ai didi

azure - azure-cosmosDB 中的 ARRAY_CONTAINS 与 JOIN

转载 作者:行者123 更新时间:2023-12-01 13:27:57 27 4
gpt4 key购买 nike

我们计划摄取到 DocumentDb 中的 JSON 文档如下所示......

[
{"id":"id1","LastName": “user1”, "GroupMembership":["g1","g2"]},
{"id":"id2","LastName": “user2”, "GroupMembership":["g1","g4","g5"]},
{"id":"id3","LastName": “user3”, "GroupMembership":["g3","g4","g2"]},

]

我们想要回答诸如统计“g1”或“g2”组成员的所有用户等查询……。用户数量非常大(几百万)……实现此查询并使用索引并避免任何扫描的最佳方法是什么......我应该使用 ARRAY_CONTAINS 还是 JOIN(ARRAY_CONTAINS 内部使用索引还是进行扫描)...

选项1)

SELECT VALUE COUNT(1) FROM Users WHERE ARRAY_CONTAINS(Users.GroupMembership, "g1") or ARRAY_CONTAINS(Users.GroupMembership, "g2")

选项2)

SELECT VALUE COUNT(1) FROM Users JOIN Membership in Users.GroupMembership WHERE Membership = "g1" or Membership = "g2"

最佳答案

两个查询都应以相同的方式使用索引,但与 JOIN 相比,ARRAY_CONTAINS 可能会提供更好的执行时间。您可以根据本文使用查询指标来分析这两个查询:https://learn.microsoft.com/en-us/azure/cosmos-db/documentdb-sql-query-metrics#query-execution-metrics

关于azure - azure-cosmosDB 中的 ARRAY_CONTAINS 与 JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47512978/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com