mysql分批刪除數據


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)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM