jef*_*ind 6 mysql logging database-performance
我刚刚升级到MySQL 5.1.6,以便利用将常规日志保存到表中的能力 - >即mysql.general_log.一旦我这样做,我立即感到惊讶,实际上有多少查询正在触及我们的系统.从第一个小时开始,我在此常规日志表中有大约40,000行.我还没有在MySQL文档中发现它是否存在一般日志表大小限制.
让这个普通日志以这个速度增长是否有问题?
如果有尺寸问题,如何处理?
是否有一些公认的做法如何处理尺寸问题?
我应该制作一个清除表格的事件并经常将数据保存到文件中吗?
非常感谢您的帮助!
小智 7
我为我的日志文件做了类似的事情.我只对保持过去24小时感兴趣,但您可以调整事件以创建存档表等.它不会记录事件运行所需的几秒钟,但我不介意.
CREATE EVENT `prune_general_log` ON SCHEDULE
EVERY 1 DAY STARTS '2013-10-18'
ON COMPLETION NOT PRESERVE
ENABLE
COMMENT 'This will trim the general_log table to contain only the past 24 hours of logs.'
DO BEGIN
SET GLOBAL general_log = 'OFF';
RENAME TABLE mysql.general_log TO mysql.general_log2;
DELETE FROM mysql.general_log2 WHERE event_time <= NOW()-INTERVAL 24 HOUR;
OPTIMIZE TABLE general_log2;
RENAME TABLE mysql.general_log2 TO mysql.general_log;
SET GLOBAL general_log = 'ON';
END
Run Code Online (Sandbox Code Playgroud)