请教mysql 如何按时间删除多余的记录?

请教mysql 如何按时间删除多余的记录?,第1张

先写好一段删除的程序,并建立procedure.手机上打的,可能有些小问题,实在需要回家了可以帮你改好。

Drop procedure if exist name

create procedure name()

Begin

-- 计算总共记录数

Set @nb= select count(表里任意变量)from table

Select delete from table

order by time

limite @nb-N

end

call name

然后去建立一个event, envent可以调用上面的程序写call name即可。然后设置程序的时间,这样每过一段时间程序就自动运行了!:)

第一种方式 直接执行delete from T limit 10000,单个语句占用时间长,锁的时间也比较长;而且大事务还会导致主从延迟。

第一种方式 第二种方式是 相对 较好的

第三种方式 在20个连接中同时执行delete from T limit 500),会人为造成锁冲突。如果可以加上特定条件,将这10000行天然分开,可以考虑第三种,例如拿到了ID

请描述替换规则,或者粘贴一些示例数据(替换前、替换后)的内容。一般使用下面的sql语句:

update

表名

set

字段=replace(字段,"现有内容","替换内容")


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8647633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存