猿问

mysql 批量删除锁表的解决方案?

mysql的某个表,不断地插入新数据。但为了防止不断变大,需要同时执行delete from 语句,删除某个时间点之前的旧数据。

现在问题来了,删的时候,不敢删除过多 条数据,要不然,删得越多,就锁表时间越长。
只能100 多条的删除。但是,这种速度,远远少于 插入的条数。

问,有什么办法,让mysql的同一个表,同时允许delete和insert,并且总量维持在某个平衡水平。主要是 delete 锁表的问题。


慕村9548890
浏览 2856回答 1
1回答

德玛西亚99

你可以在程序里,或用function/存储过程, 每插一条就删一条, 总条数就不变了INSERT INTO `test`.`data` (`id`, `record_time`) VALUES ('6', '2018-03-05 0:0:0');DELETE FROM data WHERE id= (SELECT * FROM  (SELECT MIN(id) AS id FROM data) t);
随时随地看视频慕课网APP

相关分类

MySQL
我要回答