mysql定时删除过期数据记录的简单方法

1. 连接登录MySQL后,先查看MySQL是否开启了事件功能:

命令:show variables like '%sc%';

发现event_sheduler是OFF关闭的;

2. 打开event_scheuler:

临时开启(mysql服务重启后之后失效)

SET GLOBAL event_scheduler = ON; SET GLOBAL event_scheduler = 1; — 0代表关闭

永久开启

在my.cnf中的[mysqld]部分添加如下内容,然后重启mysql(mysql重启命令:service mysqld restart)

event_scheduler=ON

3. 创建事件,这里举例每5秒钟定时删除wififlows表中过期2分钟的数据:

create event e_delete_wififlows on schedule every 5 second do delete from wififlows where timestamp < (CURRENT_TIMESTAMP() + INTERVAL -2 MINUTE);

如果事先存在这个事件可以使用如下命令进行删除:

drop event if exists e_delete_wififlows;

然后使用show events;查看存在的事件

4. 开启事件:

alter event e_del_wififlows on completion preserve enable;

5. 关闭事件:

alter event e_del_wififlowa on completion preserve disable;

以上这篇mysql定时删除过期数据记录的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MySQL防止delete命令删除数据的两种方法

    方法一我常用的做法,就是在数据库中加一个删除标识字段,如: isdel=1 这样就代码删除的字段了 方法二直接限制mysql删除 启动MySQL的时候加上参数 -U -U, --safe-updates  Only allow UPDATE and DELETE that uses keys. 他的作用是防止执行delete的时候没带有条件语句,如果没加上where则语句不执行.

  • Mysql下自动删除指定时间以前的记录的操作方法

    关于Event:mysql5.1版本开始引进event概念.event既"时间触发器",与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程. 首先删除2天以前记录的SQL语句(webserver_monitormemory为表名,time为时间字段): delete From webserver_monitormemory where DATE(time) &

  • MYSQL定时清除备份数据的具体操作

    1|0 背景 由于项目需要,每个月的历史存量数据需要进行一个归档和备份操作,以及一些日志表需要进行一个明细字段清除,让mysql数据库磁盘节省空间.则需要一些定时任务来定时清理这些数据. 2|0技术选型 Java 可以基于Quartz/Timer来使用定时任务机制来编写定时任务,需要依赖于Java程序 基于Linux下Crontab来基于cron表达式构建定时任务文档必定需要编写对应的脚本,但是在这个脚本中,由于需要操作数据库,必定会涉及到明文密码这样的一个数据,这样不是很安全. 由于使用到的是

  • MySQL中删除重复数据的简单方法

    MYSQL里有五百万数据,但大多是重复的,真实的就180万,于是想怎样把这些重复的数据搞出来,在网上找了一圈,好多是用NOT IN这样的代码,这样效率很低,自己琢磨组合了一下,找到一个高效的处理方式,用这个方式,五百万数据,十来分钟就全部去除重复了,请各位参考. 第一步:从500万数据表data_content_152里提取出不重复的字段SFZHM对应的ID字段到TMP3表 create table tmp3 as select min(id) as col1 from data_content

  • MySQL删除表数据的方法

    在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句.DELETE语句可以通过WHERE对要删除的记录进行选择.而使用TRUNCATE TABLE将删除表中的所有记录.因此,DELETE语句更灵活. 如果要清空表中的所有记录,可以使用下面的两种方法:       DELETE FROM table1       TRUNCATE TABLE table1 其中第二条记录中的TABLE是可选的. 如果要删除表中的部分记录,只能使用DELETE语句.

  • mysql定时删除过期数据记录的简单方法

    1. 连接登录MySQL后,先查看MySQL是否开启了事件功能: 命令:show variables like '%sc%'; 发现event_sheduler是OFF关闭的; 2. 打开event_scheuler: 临时开启(mysql服务重启后之后失效) SET GLOBAL event_scheduler = ON; SET GLOBAL event_scheduler = 1; - 0代表关闭 永久开启 在my.cnf中的[mysqld]部分添加如下内容,然后重启mysql(mysql

  • Jquery删除css属性的简单方法

    有时我们不需要某个css属性时,想删除它,但有没有removeCss方法,怎么办呢? 可以使用如下方法解决 $('选择器').css('css属性',''); 即将css属性值赋值为空,页面中就不会显示该css属性了. 如:$('.div1').css('opacity',''); 以上这篇Jquery删除css属性的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • mysql删除重复记录语句的方法

    例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1 delete YourTable where [id] not in ( select max([id]) from YourTable group by (name + value)) 方法2 delet

  • ORACLE查询删除重复记录三种方法

    比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 复制代码 代码如下: select p1.*   from persons  p1,persons  p2   where p1.id<>p2.id   and  p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address 可以实现上述效果. 几个删除重复记录的SQL语句 1.用rowid方法 2.用g

  • Innodb中mysql快速删除2T的大表方法示例

    前言 本文主要给大家介绍了关于Innodb中mysql快速删除2T的大表的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 来,先来看小漫画陶冶一下情操 OK,这里就说了.假设,你有一个表erp,如果你直接进行下面的命令 drop table erp 这个时候所有的mysql的相关进程都会停止,直到drop结束,mysql才会恢复执行.出现这个情况的原因就是因为,在drop table的时候,innodb维护了一个全局锁,drop完毕锁就释放了. 这意味着,如果在白天,访

  • MYSQL删除重复数据的简单方法

    复制代码 代码如下: CREATETABLE`users`(`id`int(10)NOTNULLAUTO_INCREMENT,`name`char(50)NOTNULL,PRIMARYKEY(`id`)) 复制代码 代码如下: deletefromuserswhereidin(selectmin(id)fromusersgroupbynamehavingcount(name)>1); 结果报错:1093youcan'tspecifytargettable.... 原因是mysql删除动作不能带有

  • QQ聊天记录删除了怎么恢复简单方法

    现在朋友之间交流,基本是都是通过QQ聊天,如果你一不小心把重要的聊天记录删除了该怎么办呢?下面小编就教你一些小窍门,保证解决你的难题. 第一种:向朋友请求帮助 相信我们大家都知道QQ聊天记录会在双方的电脑上保留着, 你电脑上的删除了,对方的电脑上可能还保留着.所以假如你和某个朋友聊天记录一不小心被删除了,你可以向你的朋友请求帮助,登陆QQ,找到你那个朋友让他把聊天记录导出一份给你.相信这是最为快速方便的一种方法了. 第二种:利用文件夹 如果对方也把QQ聊天记录删除了,又该怎么办呢?那我们就利用第

  • 定时备份mysql, 定时切割nginx access log的方法

    定时备份mysql 放入 /etc/cron.hourly/ 复制代码 代码如下: #!/bin/bash DUMP=/usr/local/webserver/mysql/bin/mysqldump OUT_DIR=/data1/backup/ DB_NAME=数据库名 DB_USER=数据库用户 DB_PASS=数据库密码 #How much days backup most DAYS=3 #12 hours ago MINS=720 #Core of script cd $OUT_DIR D

  • mysql查找删除表中重复数据方法总结

    在数据库表里,我们有时候会保存了很多重复的数据,这些重复的数据浪费资源,我们要将其删除掉,应该怎么处理呢?下面来看一下. 先看下我们的表数据,有一些数据是重复的. 要查找重复数据,我们可以使用mysql里的having语句,如图. 执行这个语句后,我们可以看到现在的结果里显示的就是表中重复数据的字段. 要删除这些重复的数据,我们找出这些数据的ID,在select语句里,添加id字段,使用max函数,可以得到重复数据最后面的id. 执行结果如图,得到重复数据的id为8和9. 这样我们就可以使用de

随机推荐