今天给一个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”状态,很快表创建完成。
如果遇到类似的情况,你可以一试。









