列出 "copying to tmp table on disk" MySQL 个查询
List "copying to tmp table on disk" MySQL queries
有时我们使用的 MySQL 数据库会在 /tmp
磁盘上生成文件以在执行查询时临时存储结果。
在 Whosebug 上有很多关于如何禁用此行为或通过例如使用 RAM 磁盘加速它的帖子。
不过,我正在寻找一种优雅的方式来保存生成此类文件的查询,因为我相信这些查询中的大多数都可以优化。
有没有办法记录这些查询?
鉴于此类查询通常需要很长时间,我们可以假设这些都是慢查询。我们可以 log slow queries 使用 slow_query_log_file
和 slow_query_log
变量:
-- set the log file location
SET GLOBAL slow_query_log_file = '/path/to/slow_log_file.log';
-- turn on slow query logging
SET GLOBAL slow_query_log = ON;
确保 mysql
用户(或运行 MySQL 守护进程的用户)对目录和文件具有写入权限。
有时我们使用的 MySQL 数据库会在 /tmp
磁盘上生成文件以在执行查询时临时存储结果。
在 Whosebug 上有很多关于如何禁用此行为或通过例如使用 RAM 磁盘加速它的帖子。
不过,我正在寻找一种优雅的方式来保存生成此类文件的查询,因为我相信这些查询中的大多数都可以优化。
有没有办法记录这些查询?
鉴于此类查询通常需要很长时间,我们可以假设这些都是慢查询。我们可以 log slow queries 使用 slow_query_log_file
和 slow_query_log
变量:
-- set the log file location
SET GLOBAL slow_query_log_file = '/path/to/slow_log_file.log';
-- turn on slow query logging
SET GLOBAL slow_query_log = ON;
确保 mysql
用户(或运行 MySQL 守护进程的用户)对目录和文件具有写入权限。