mysql delete 千萬資料操作

來源:互聯網
上載者:User

     在mysql中,delete掉上千萬條資料時,會造成表被鎖,甚至給mysql伺服器帶來很大壓力。這是目前mysql無法避免的一個問題,可以說是在處理大資料量方面的不足。而在業務中,又無法避免這種delete需求,因此,借用oracle的思想,寫預存程序,分而治之,批量刪掉。

delimiter $$

create procedure sp_del_test()

begin

declare done int default 0;

declare uid_1 int default 0;

declare i int default 0;

declare cur_test cursor for select uid from tmp_test_del;

declare continue handler for SQLSTATE '02000' set done=1;

open cur_test;

repeat  fetch cur_test into uid_1;

set autocommit=0;

delete from test_fenye where uid=uid_1;

set i=i+1;

if mod(i,1000)=0 then  

       commit;

end if;

until done=1 end repeat;

close cur_test;

commit;

end;

$$

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.