MySql操作缓慢:copy to tmp table
在给表加字段的时候,发现执行几分钟还没完成,查了下数据量,不到200w条记录,不应该出现这种情况。
后来想了想可能是别的线程锁表了。
新建窗口,执行 show processlist,看到所有操作表的线程
发现 state状态为copy to tmp table,这是因为临时结果集大于tmp_table_size,正在将临时表从内存存储转为磁盘存储以此节省内存
解决方案:
- 放大tmp_table_size
使用命令 mysql> show variables like ‘%tmp%’;
查询tmp_table_size 为默认16M
修改 my.cnf
tmp_table_size = 256M - 优化sql
- 优化参数,详见
http://blog.csdn.net/u012104435/article/details/50915604