【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,不能使用索引
相关推荐
wear工程师5 分钟前
MySQL 索引条件下推是什么?Using index condition 并不是覆盖索引
sql·mysql
Wang's Blog15 分钟前
PostgreSQL笔记38:慢查询定位与优化的系统方法论
数据库·笔记·postgresql
幻风_huanfeng1 小时前
软考:高级软件架构师学习笔记----数据库
数据库·软考·系统架构师
衿心.1 小时前
Django TemplateDoesNotExist
数据库·django·sqlite
方便面不加香菜1 小时前
MySQL 复合查询
数据库·mysql
花花鱼1 小时前
MySQL Illegal mix of collations 全解|字符集与排序规则冲突原理、分层排错、通用解决方案(适配5.7/8.0迁移)
数据库·mysql
Wang's Blog1 小时前
PostgreSQL笔记37:数据库性能瓶颈排查方法论与工具链
数据库·笔记·postgresql
Lyyaoo.10 小时前
Spring Boot Validation 声明式参数校验
spring boot·后端·mysql
oradh11 小时前
Oracle闪回技术操作总结
数据库·oracle·oracle闪回技术操作总结·oracle闪回·flashback技术
南城以南溫暖如初14712 小时前
外卖CPS实战指南:从技术选型到运营落地全流程解析
java·spring boot·mysql·架构·vue