DELIMITER $$
DROP PROCEDURE IF EXISTS `study`.`xx` $$
CREATE PROCEDURE `study`.`xx` ()
BEGIN
DECLARE i int;
loop1:loop
delete from xxx where xx=xx limit 5000;
select row_count() into i;
if i=0 then
leave loop1;
end if;
select sleep(1);
end loop loop1;
END $$
DELIMITER ;

分批删除数据减少对undo段的使用(mysql有个线程purge会定时回收空闲的undo)。

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
  • 2021-10-06
  • 2021-07-20
  • 2021-09-23
猜你喜欢
  • 2022-12-23
  • 2021-11-30
  • 2021-11-30
  • 2021-11-30
  • 2021-11-30
  • 2021-11-30
相关资源
相似解决方案