在阅读了保罗的回答之后,我继续在[https://dev.mysql.com/doc/refman/5.7/en/query-log.html]上挖掘更多信息。
我找到了一个人真正有用的代码。 这是上下文的摘要。
(注意:以下代码不是我的)
此脚本是保持表清洁的示例,它将帮助您减小表的大小。 在一天之后,将会有大约180k的日志查询。 (在文件中,每天30MB)
您需要添加一个额外的列(event_unix)然后您可以使用此脚本来保持日志清洁...它会将时间戳更新为Unix时间戳,删除超过1天的日志,然后将event_time更新为Timestamp 来自event_unix ...听起来有点令人困惑,但它的效果很好。
新列的命令:
SET GLOBAL general_log = 'OFF';
RENAME TABLE general_log TO general_log_temp;
ALTER TABLE `general_log_temp`
ADD COLUMN `event_unix` int(10) NOT NULL AFTER `event_time`;
RENAME TABLE general_log_temp TO general_log;
SET GLOBAL general_log = 'ON';
清理脚本:
SET GLOBAL general_log = 'OFF';
RENAME TABLE general_log TO general_log_temp;
UPDATE general_log_temp SET event_unix = UNIX_TIMESTAMP(event_time);
DELETE FROM `general_log_temp` WHERE `event_unix` UPDATE general_log_temp SET event_time = FROM_UNIXTIME(event_unix);
RENAME TABLE general_log_temp TO general_log;
SET GLOBAL general_log = 'ON';
归功于Sebastian Kaiser(代码的原作者)。
希望有人会发现它像我一样有用。