有个统计需求,大概是 select count(if(条件 a)) as acount,count(if(条件 b)) as bcount,担心 if 里面的字段比较能不能走索引(MySQL 文档没说),如果不能,就考虑拆成两个 SQL 并用 where 取代原来的 if 条件。
有个统计需求,大概是 select count(if(条件 a)) as acount,count(if(条件 b)) as bcount,担心 if 里面的字段比较能不能走索引(MySQL 文档没说),如果不能,就考虑拆成两个 SQL 并用 where 取代原来的 if 条件。
1
w516322644 Jul 15, 2020
主要看 where 。
|
2
zhangysh1995 Jul 15, 2020
IF 函数的话,不论是否满足都要执行表达式,所以这里索引没什么用,所有数据都要扫一遍的吧
为啥不放到 where 里面用索引呢?看起来就是数一下行数。 |
3
cubecube Jul 15, 2020
不会,这个在列表达式,和索引没任何关系
|
4
realpg PRO 为什么这么多人都喜欢或者说优先考虑奇形怪状的查询?
|