清空某个库下的所有表时,可以考虑导出这张表,以导出表结构的方式,把该库下所有的表结构导出来,再删库,导回去就好了
mysqldump
-d
参数是只导结构,不导数据的
1.快速清空表中的数据(20.05.25)
区别:
a.不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。
b.效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。
c.delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。
使用event_scheduler实现,这是个事件的自动调度机制,会定期执行事件中定义的语句;1 配置开启event scheduler
配置my.ini文件 中加上 event_scheduler = 1
重启mysql服务
验证event_scheduler是否已经开启: show variables like '%event%' #值为 ON 表明已开启
2 创建event
drop event event_test_a
CREATE EVENT event_test_a
ON SCHEDULE EVERY 1 day STARTS date_add(concat(current_date(), ' 00:00:00'), interval 0 second)
ON COMPLETION PRESERVE ENABLE
DO
delete from dbname.`user` where (`name`, `time` ) =
(
select `name`, max_time from
(select `name`, max(`time`) max_time from dbname.`user` group by 1) t
where max_time <date_add(current_timestamp, interval -2 month)
)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)