值得关注的Mysql进程状态
- convert HEAP to MyISAM 查询结果太大时把结果放磁盘
- create temp table 创建临时表
- Copying tmp table to disk 把内存临时表复制到磁盘
- locked 被其他查询锁住
- logging show query 记录慢查询
什么情况下产生临时表
- group by 和 order by 的列不同时
- distinct 和 order by 一起使用
- 开启了SQL_SMALL_RESULT(告诉优化器结果集会很小,可以将结果集放在内存中的索引临时表,以避免排序操作)选项
什么情况下临时表写到磁盘上
- 取出的列含有text/blob类型时,内存表存储不了text/blob类型
- 在group by 或distinct 的列中存在大于512字节的String列
- select 中含有大于512字节的String列,同时又使用了union或union all 语句