如果你的查询一直在写磁盘,但是又常常因为无理的业务需求导致无法修改你的查询语句,于是就一直在崩溃的边缘,并且要哭的感觉的时候,可以试试为mysql tmpdir创建一个内存支持的文件系统,以获得更快的写入和读取速度, 能顶一会就是一会儿,作为技术的你没那么快被骂死。
这是一个临时方案,你还是要尽快找到写临时表的原因尽快解决它。
创建挂载点和给予mysql用户读写权限
#mkdir -p /tmp/mysqltmp && chown mysql:mysql /tmp/mysqltmp
把它加到/etc/fstab这样机器启动到时候可以自动挂载,gid,uid取决于你运行mysql的用户,在/etc/passwd里面可以查到。
#vim /etc/fstabtmpfs /tmp/mysqltmp tmpfs rw,gid=501,uid=501,size=256M,nr_inodes=10k,mode=0700 0 0
挂载
mount -a
修改/etc/my.cnf
tmpdir = /tmp/mysqltmp
重启你的数据库(自己决定是不是要在夜深人静的时候)
service mysql restart
确认你的临时目录已经生效
mysql> show variables like 'mpdir#x27;;
+-------------------+----------------+
| Variable_name | Value |
+-------------------+----------------+
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp/mysqltmp |
+-------------------+----------------+
2 rows in set (0.00 sec)