mysql 批量删除数据

批量删除2000w数据使用delete from table太慢//DELIMITERDROP PROCEDURE if EXISTS deleteManyTable;create PROCEDURE deleteManyTable()BEGINDECLARE i int;set i=1;while i2001DODELETE FROM `f_log` WHERE (`id` 95000000) ORDER BY `id` LIMIT 10000;SELE

批量删除2000w数据

使用delete from table太慢

i i<span style=”color: #0000ff;”>while i<span style=”color: #808080;”><<span style=”color: #800000; font-weight: bold;”>2001<span style=”color: #000000;”>
DO
<span style=”color: #0000ff;”>DELETE <span style=”color: #0000ff;”>FROM f_log <span style=”color: #0000ff;”>WHERE (id <span style=”color: #808080;”>><span style=”color: #800000; font-weight: bold;”>95000000) <span style=”color: #0000ff;”>ORDER <span style=”color: #0000ff;”>BY id LIMIT <span style=”color: #800000; font-weight: bold;”>10000<span style=”color: #000000;”>;
<span style=”color: #0000ff;”>SELECT SLEEP(<span style=”color: #800000; font-weight: bold;”>0.5<span style=”color: #000000;”>);
<span style=”color: #0000ff;”>set i<span style=”color: #808080;”>=i<span style=”color: #808080;”>+<span style=”color: #800000; font-weight: bold;”>1<span style=”color: #000000;”>;
<span style=”color: #0000ff;”>end <span style=”color: #0000ff;”>while<span style=”color: #000000;”>;
<span style=”color: #0000ff;”>END<span style=”color: #000000;”>;
<span style=”color: #808080;”>//<span style=”color: #000000;”>DELIMITER
CALL deleteManyTable();

参考文献:

http://mysql.rjweb.org/doc.php/deletebig

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部