【MySQL-索引调优】11:Group by相关概念

作用 :把结果集按照某些字段分组,每组再进行聚合计算(如 COUNT, SUM, AVG, MAX, MIN

例如:

sql 复制代码
SELECT user_id, COUNT(*) AS order_count
FROM orders
GROUP BY user_id;

1-GROUP BY的两种执行方式

1-1.有索引

利用索引分组,执行流程:

复制代码
扫描索引
→ 同 user_id 的数据天然连续
→ 直接统计

1-2.无索引

临时表分组,执行流程:

复制代码
扫描数据
→ 放入临时表
→ 排序
→ 再聚合

2-最左匹配原则

GROUP BY 想用索引,必须满足,最左匹配原则:

sql 复制代码
GROUP BY 字段 = 索引最左列
# 例如:
# 索引:(user_id,status),SQL:GROUP BY user_id,可以使用索引
# 索引:(user_id,status),SQL:GROUP BY status,不能使用索引
相关推荐
蓝天下的守望者7 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
上海云盾-小余8 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
数据库小学妹8 小时前
国家区域医疗中心国产化改造实战:数据库选型、跨院区数据互通与踩坑经验
数据库·国产数据库·数据库选型·医疗信息化·信创数据库·医疗信创
TPBoreas8 小时前
MySQL性能优化面试全攻略
mysql·面试·性能优化
xlq223229 小时前
11.表的内外连接,索引
mysql
AllData公司负责人9 小时前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine
2603_954708319 小时前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全
IvorySQL10 小时前
从双解析器到循环工程:IvorySQL 五年技术演进路线的深度观察
大数据·数据库·人工智能·postgresql·开源
wefg110 小时前
【MySQL】事务
数据库·mysql
黑白极客10 小时前
mysql的高可用性
数据库·mysql