sql - SQL 'case when' vs 'where' 效率
问题描述
哪个更有效:
Select SUM(case when col2=2 then col1 Else 0 End) From myTable
或者
Select SUM(Col1) From myTable where col2=2
还是它们的速度相同?
解决方案
第二个更高效:
- 它通常会处理更少的行(假设存在非“2”值),因为在调用聚合函数之前行将被忽略。
- 它允许优化器利用索引。
- 它允许优化器利用表分区。
在某些情况下,它们可能会花费相同的时间,尤其是在小桌子上。
推荐阅读
- higher-kinded-types - 双变量的实际例子?
- excel - 定义 Excel 求解器的范围
- javascript - 为什么while循环以字符串停止,而不是整数?
- python - 使用 matplotlib.imshow 从多个部分组成 rgb 图像
- r - 是否有计算生存概率的威布尔估计的函数
- python - 当有打印指令时,线程没有做他们的工作
- javascript - 如何将 Arduino 代码在线编译成 .hex 文件(与 Arduino 一起闪烁)?
- r - 如何编写具有固定和随机效应的线性模型
- python - 使用 openpyxl 添加注释
- powershell - Powershell,我确实输入了一个列表收集数据并将整个列表输出到一个 CSV