今天给一个MyISAM的大表加索引,临时表MYD文件的大小增长非常慢,到了MYD文件创建完成后,却发现MYI文件很小,ALTER TABLE语句始终不能结束,登录MYSQL查看show processlist;发现,ALTER TABLE语句在“Repair with keycache”状态。

于是想到,myisam_max_sort_file_size参数我们设置的是10G,但是现在这个文件正好>10G一点点,于是不能用tmpdir指定的目录排序索引。于是增加myisam_max_sort_file_size参数到20G,再次ALTER TABLE,首先MYD文件的创建速度就快了非常多,MYD文件创建结束后,MYI文件开始增长,查看processlist,发现在“Repair by sorting”状态,很快表创建完成。
如果遇到类似的情况,你可以一试。

09-13 19:06