mysql case when 不命中缓存

case when 在sql 中非常方便数据不同维度统计,但是也会出现mysql 索引不命中问题,当多个case 出现时,需要提取出来到where里面优化

优化后

SELECT
date(RecordTime) AS date,
count(
DISTINCT CASE
WHEN `Param` = '1' THEN
UserID
END
) AS 'h',
count(
DISTINCT CASE
WHEN `Param` = '2' THEN
UserID
END
) AS 's',
count(
DISTINCT CASE
WHEN `Param` = '4' THEN
UserID
END
) AS 'z'
FROM
user_prop_log_202310
WHERE
Category = '42'
GROUP BY
DATE(RecordTime)

优化前:

SELECT
date(RecordTime) AS date,
count(
DISTINCT CASE
WHEN `Category` = '42'
AND `Param` = '1' THEN
UserID
END
) AS 'h',
count(
DISTINCT CASE
WHEN `Category` = '42'
AND `Param` = '2' THEN
UserID
END
) AS 's',
count(
DISTINCT CASE
WHEN `Category` = '42'
AND `Param` = '4' THEN
UserID
END
) AS 'z'
FROM
user_prop_log_202310
GROUP BY
DATE(RecordTime)

相关推荐
凭X而动3 分钟前
postgresql18.1部署
数据库·postgresql
万邦科技Lafite3 分钟前
京东商品详情 API 接口全面讲解
java·数据库·redis·api·电商开放平台
无风听海6 分钟前
MongoDB GridFS 一些处理细节解析
数据库·mongodb
青云计划9 分钟前
Mysql
数据库·mysql
海棠Flower未眠17 分钟前
Spring Boot 3 + JPA多模块系统对MySQL和DORIS进行多数据源集成实战(荣耀典藏版)
spring boot·后端·mysql
SelectDB19 分钟前
Agent 应用范式下,企业数据基础设施如何演进?
大数据·数据库·数据分析
杜子不疼.28 分钟前
【C++ AI 大模型接入 SDK】 - 环境搭建
开发语言·数据库·c++
qq_2837200530 分钟前
Milvus 向量数据库全链路优化实战教程
数据库·milvus
m0_7020365330 分钟前
CSS如何兼容新旧方案结合响应式容器查询
jvm·数据库·python
ClouGence36 分钟前
我们做了个疯狂的决定,把 CloudDM 全部开源了
数据库·后端·mysql