美文网首页
mysql自动删除过期数据

mysql自动删除过期数据

作者: 明明就_c565 | 来源:发表于2023-07-26 13:24 被阅读0次

    开启事件

    查询事件是否开启

    show variables like '%sc%';

    查看 event_sheduler 是否为ON

    临时开启

    SETGLOBALevent_scheduler =ON; 

    或 SETGLOBALevent_scheduler =1;

    修改配置永久开启

    修改配置文件my.cnf增加配置项

    [mysqld]

    event_scheduler=ON

    重启服务生效

    创建事件

    如:

    每10分钟执行一次 删除过期60分钟的日志记录

    create event e_delete_operation_log on schedule every 10 second do delete from operation_log where tcreated_at < (CURRENT_TIMESTAMP() + INTERVAL -60 MINUTE);

    每1天执行一次,删除过期180天的消息记录

    create event e_delete_message_history on schedule every 1 day do delete from operation_log where created_at < (CURRENT_TIMESTAMP() + INTERVAL -180 DAY);

    启用事件

    alter event e_delete_operation_log on completion preserve enable;

    关闭事件

    alter event e_delete_operation_log on completion preserve disable;

    删除事件

    drop event if exists  e_delete_operation_log;

    清理磁盘碎片

    delete语句只是将数据标记为已删除,未删除磁盘占用,

    使用一下命令清理数据磁盘占用。

    OPTIMIZE TABLE operation_log;

    备份数据库

    mysqldump -uroot -pcloudsuite#Passw0rd --databases my_db --lock-tables=0 > ./all.sql

    参考:

    https://www.nhooo.com/note/qa3g1z.html

    https://blog.csdn.net/weixin_64403990/article/details/131697592

    相关文章

      网友评论

          本文标题:mysql自动删除过期数据

          本文链接:https://www.haomeiwen.com/subject/ntekpdtx.html