1 前言
开篇我们先提一个问题:两个group by语句都用了order bynull,为什么使用内存临时表得到的语句结果里,0这个值在最后一行;而使用磁盘临时表得到的结果里,0这个值在第一行?
今天我们就来看看,出现这个问题的原因吧。
2 内存表的数据组织结构
为了便于分析,把这个问题简化一下,假设有以下的两张表t1 和 t2,其中表t1使用Memory引擎, 表t2使用InnoDB引擎。
create table t1(id int primary key, c int) engine=Memory;
create table t2