您的位置:首页 > 数据库 > MySQL

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

2010-07-17 00:15 519 查看
最近测试使用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐