mysql性能出现异常,cpu占用率很高,查看其日志文件,发现存在许多类似如下的记录:
mysqld-nt.exe: Sort aborted
很明显这是在提示mysql排序发生了中断
比较常见的有tmpdir空间不足,sort_buffer_size ,read_rnd_buffer_size、read_buffer_size 设置不合理,
含有order by,groupy by 等需要排序sql性能比较低下需要优化,等其它原因。
这里的具体原因应是临时表无法创建问题,因为最近修改了tmpdir的位置配置,但mysql账号却没有该位置的读写权限。导致临时表无法写入。其解决方法如下:
编辑mysql的my.ini配置文件,修改mysql临时文件目录:
tmpdir = "c:mysql_tmp"
如果mysql是独立账户运行,请给与该临时目录账户的读写权限
修改后重启mysql即可:
net stop mysql
net start mysql