gpt4 book ai didi

SQL 'case when' 对比 'where' 效率

转载 作者:行者123 更新时间:2023-12-05 01:15:11 25 4
gpt4 key购买 nike

哪个更有效率:

Select SUM(case when col2=2 then col1 Else 0 End) From myTable 

Select SUM(Col1) From myTable where col2=2

或者它们的速度一样吗?

最佳答案

毫无疑问,第二个应该更快。这是因为“访问”的概念。访问是指查询需要检索以产生结果的数据量。它对数据库引擎优化器决定包含在执行计划中的“运算符(operator)”有很大影响。

安全的一些异常(exception)情况,第一个查询需要访问所有表行然后计算结果,包括与case没有任何关系的行。

第二个查询仅引用计算结果所需的特定行。因此,它具有更快的潜力。为了实现它,索引的存在是至关重要的。例如:

create index ix1 on myTable (col2);

在这种情况下,它只会访问匹配过滤谓词col2 = 2的行子集。

关于SQL 'case when' 对比 'where' 效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56689364/

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