logging mysql_logging - 如何显示在MySQL上执行的最后查询?

在阅读了保罗的回答之后,我继续在[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` < UNIX_TIMESTAMP(NOW()) - 86400;

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(代码的原作者)。

希望有人会发现它像我一样有用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值