欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

使用tmpfs存放MySQL的临时文件的问题一则

发布时间:2023/12/19 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 使用tmpfs存放MySQL的临时文件的问题一则 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

最近测试使用tmpfs文件系统作为tmpdir选项存放临时文件的位置,具体步骤网上有很多,但是遇到了一个小bug。
MySQL的相关参数:
default-storage-engine = INNODB
innodb_flush_method=O_DIRECT
tmpdir = /tmp/mysqltmp

/tmp/mysqltmp目录为tmpfs。
使用以下语句创建Innodb类型的临时表:
SQL> create temporary table tmpdemo(a int) engine=innodb;
查看error日志有如下警告:
InnoDB: Failed to set O_DIRECT on file /tmp/mysqltmp/#sqla61_62b9_0.ibd: CREATE: Invalid argument, continuing anyway
InnoDB: O_DIRECT is known to result in 'Invalid argument' on Linux on tmpfs, see MySQL Bug#26662
虽然报错,但通过上面的信息可以看出并未影响正常的数据操作,实际情况也是如此,那么如何避免这种error呢?
1.创建memory或myisam的临时表代替innodb;
2.修改innodb_flush_method为非O_DIRECT,如O_DSYNC、fdatasync;
参考:
http://bugs.mysql.com/bug.php?id=26662
http://bugs.mysql.com/bug.php?id=45671

转载于:https://blog.51cto.com/cau99/351120

总结

以上是生活随笔为你收集整理的使用tmpfs存放MySQL的临时文件的问题一则的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。