copy to tmp table

执行ALTER TABLE修改表结构时

建议:凌晨执行


Copying to tmp table

拷贝数据到内存中的临时表,常见于GROUP BY操作时

建议:创建索引


Copying to tmp table on disk

临时结果集太大,内存中放不下,需要将内存中的临时表拷贝到磁盘上,形成 #sql***.MYD、#sql***.MYI

建议:创建索引,加大sort_buffer_size/tmp_table_size/max_heap_table_size


Creating sort index

当前的SELECT中需要用到临时表在进行ORDER BY排序

建议:创建索引


Creating tmp table

创建基于内存或磁盘的临时表,当从内存转成磁盘的临时表时,状态会变成:Copying to tmp table on disk

建议:创建索引


Sending data

从server端发送数据到客户端,也有可能是接收存储引擎层返回的数据,再发送给客户端,数据量很大时尤其经常能看见

建议:通过索引或LIMIT,减少需要扫描的数据量


Sending Data不是网络发送,是从硬盘读取

发送到网络是Writing to net


Using temporary

需要用临时表存储结果集,通常是因为group by的列上没有索引。也有可能是因为同时有group by和order by,但group by和order by的列又不一样

wKiom1U49SfR1BUXAAPxCfN2-rk832.jpg

wKioL1U49oWSDkpVAAK54gern7M347.jpg

wKiom1U49Sfj3ShIAALM_OKHJJo070.jpg

wKioL1U49oaj61euAAIczDhsjbo032.jpg