Mysql group by

临时表与内存表

内存表是 Memory 引擎表,表的数据行都在内存。

临时表可以使用各种引擎。

临时表是线程私有表,其他线程不可见,不需考虑重名问题。

session 结束时临时表会被自动删除。

如果 Binlog_format = row,则临时表语句不进入 binlog,不参与主从同步。

普通表的 table_def_key = 库名 + 表名。

临时表的 table_def_key = 库名 + 表名 + mysql实例 id + 线程 id。

内部临时表

Mysql 的一些操作需要临时存储数据,会用到临时表。比如 union 去重求交集。它将两个子查询的结果放入临时表,去重之后返回客户端。如果是 union all 求并集,就不需要临时表。

group by 分组也用到临时表。group by 分组默认排序,如果不需要排序,可以 sql 语句末尾添加 order by null

group by 无法判断分组字段是否有序,因此用到临时表。而索引是有序的,如果 group by 索引字段 就不会使用临时表,省去排序时间。

相关推荐
清风66666618 分钟前
基于51单片机宠物喂食系统设计
数据库·单片机·毕业设计·51单片机·课程设计·宠物
一语雨在生无可恋敲代码~1 小时前
RAG Day06 查询重建
数据库
对着晚风做鬼脸1 小时前
MySQL进阶知识点(八)---- SQL优化
数据库
nbsaas-boot1 小时前
使用 DuckDB 构建高性能 OLAP 分析平台
java·服务器·数据库
欢喜躲在眉梢里1 小时前
mysql之二进制日志
运维·数据库·mysql·日志·数据·mysql日志
mpHH2 小时前
babelfish for postgresql 分析--babelfishpg_tds--doing
数据库·postgresql
档案宝档案管理3 小时前
档案管理系统如何对企业效率重构与提升?
大数据·数据库·人工智能·重构·档案·档案管理
TimberWill3 小时前
PostgreSQL表备份并重命名出现索引、外键仍指向旧表,恢复后仍失败的问题
数据库·postgresql
沐浴露z4 小时前
MySQL MVCC:通过 ReadView与 undolog版本链 分析读提交RC和可重复读RR的原理
数据库·mysql·innodb·mvcc
阿巴~阿巴~4 小时前
MySQL索引特性(重点)
服务器·数据库·sql·mysql·ubuntu