我将MySQL tmpdir设置设置为使用/run/mysqld (即tmpfs ),但是在运行查询时,我知道将数据复制到临时表(根据MySQL的INFORMATION_SCHEMA.PROFILE记录需要5-6秒时间),在命令提示符下执行ls -la时,没有看到任何临时文件(S)被写入该目录。
此外,当我的tmpdir从磁盘上的位置移动到内存中的位置(tmpfs)时,查询速度并没有改变,这显然是应该改进的。
问:我如何确定我的tmpdir是否被使用?
发布于 2016-12-28 00:57:34
在*nix中,可以创建一个文件,rm'd,然后通过相同的进程写入和读取文件。没有任何风格的ls可以看到它,因为它已经是rm从目录中得到的,但是程序可以看到它。这是一个技巧,可以确保如果程序崩溃,文件不会被留下。MySQL经常使用rm技巧。。
ls不能看到rm‘d-但没有关闭的文件,但是lsof可以将它们看作是(deleted)。
由于所消耗的空间,df将发生变化。
如果你给我们看SELECT,SHOW CREATE TABLE和EXPLAIN SELECT。我们可能会给你一些避免使用tmp表的建议。(我想你真正的问题是关于性能的?)
https://dba.stackexchange.com/questions/159296
复制相似问题