使用tmpfs存放MySQL的临时文件的问题一则
最近測(cè)試使用tmpfs文件系統(tǒng)作為tmpdir選項(xiàng)存放臨時(shí)文件的位置,具體步驟網(wǎng)上有很多,但是遇到了一個(gè)小bug。
MySQL的相關(guān)參數(shù):
default-storage-engine = INNODB
innodb_flush_method=O_DIRECT
tmpdir = /tmp/mysqltmp
/tmp/mysqltmp目錄為tmpfs。
使用以下語(yǔ)句創(chuàng)建Innodb類型的臨時(shí)表:
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
雖然報(bào)錯(cuò),但通過(guò)上面的信息可以看出并未影響正常的數(shù)據(jù)操作,實(shí)際情況也是如此,那么如何避免這種error呢?
1.創(chuàng)建memory或myisam的臨時(shí)表代替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
轉(zhuǎn)載于:https://blog.51cto.com/cau99/351120
總結(jié)
以上是生活随笔為你收集整理的使用tmpfs存放MySQL的临时文件的问题一则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ADHD-注意力缺陷多动症
- 下一篇: 书籍推荐-记这几年看的书