首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的mysql.general_log表是不是太大了?

我的mysql.general_log表是不是太大了?
EN

Stack Overflow用户
提问于 2012-02-19 00:41:01
回答 4查看 9.9K关注 0票数 6

我最近刚刚升级到MySQL 5.1.6,以便利用将通用日志保存到表-> (即mysql.general_log )的功能。一旦我这样做了,我立即惊讶于有那么多的查询实际上正在命中我们的系统。从第一个小时开始,我在这个通用日志表中大约有40,000行。我还没有在MySQL文档中找到关于是否有一般日志表大小限制的说明。

让这个通用日志以这样的速度增长有问题吗?

如果存在大小问题,该如何处理?

有没有一些公认的做法,如果有大小问题,如何处理?

我是否应该创建一个事件来清除该表并将数据保存到一个文件中?

非常感谢你的帮助!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-19 00:51:39

默认情况下,general_log表使用CSV引擎,它实际上只是驱动器上的一个完整的CSV文件,但可以通过SQL访问。这意味着它的大小限制是文件系统上文件的大小限制。

票数 6
EN

Stack Overflow用户

发布于 2013-10-19 05:16:20

我对我的日志文件做了类似的事情。我只对保留过去的24小时感兴趣,但你可以调整事件来创建存档表,等等。它不会记录事件运行所需的几秒钟,但我不介意。

代码语言:javascript
复制
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
票数 8
EN

Stack Overflow用户

发布于 2012-02-19 00:49:10

您应该使用诸如mysql-log-rotate http://dev.mysql.com/doc/refman/5.0/en/log-file-maintenance.html之类的实用程序来轮换日志文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9343001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档