azure - DocumentDB 的 IN 与 OR 哪个在什么情况下更好、更快?

标签 azure azure-cosmosdb or-operator in-operator nosql

我有两个选择语句,一个是in条件,另一个是or条件,当我在DocumentDB中搜索一个巨大的集合时,其中一个给出最好的选择

SELECT * FROM m where m.gender=1
and m.langPref in ('English','hindhi','telugu','french','Albanian','Croatian','latin')


SELECT * FROM m where m.gender=1
and m.langPref='English' or m.langPref='hindhi' or m.langPref='telugu' or m.langPref='french' or m.langPref='Albanian' or m.langPref='Croatian' or m.langPref='latin')

提前致谢!!!

最佳答案

对于少数运营商来说,这两种方式都没有关系。

对于大量运算符,在 DocumentDB(以及大多数数据库)中,IN 肯定比 OR 更好,因为查询优化器的工作量较少。

就像其他人建议的那样,您可以测量 RU 来判断一个是否比另一个好以及好多少。

关于azure - DocumentDB 的 IN 与 OR 哪个在什么情况下更好、更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43555650/

相关文章:

Javascript IF 与 OR 一起使用

c++ - 如何仅在所有先前条件都为假时才执行 block ,并在其中一个条件为真时执行特定 block ?

java - 在 Windows Azure 上部署 Play 2.3.X 应用程序

azure - 将网络解决方案电子邮件的 MX 记录添加到 Azure 应用程序域

python - 在应用服务计划下的 azure 功能中发送电子邮件

Azure WebJob 配置返回 null

networking - 从 .NET SDK 在 Fiddler 中查看 DocumentDB 本地模拟器 http 请求

azure - Azure Cosmos DB API 如何在 CLI 和 Azure 门户中映射

javascript - 我应该使用 if-then-else 或 and or 运算符来检查 Javascript 中的空值吗

azure - 在子对象的查询中返回重复项