mysql delete 千萬資料操作

2021-09-06 10:18:51 字數 793 閱讀 3252

在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;

$$

MYSQL delete效能優化!

優化項 1 low priority 當沒有連線文章表時才進行刪除操作。delete low priority from t 優化項 2 quick 當刪除行時並不刪除行的索引 如果再次插入這一行,或是也它相近的行時 就可以重用索引。delete quick from t 好處 快 再怎麼說也少刪除...

十五 MySQL DELETE 語句

你可以使用 sql 的 delete from 命令來刪除 mysql 資料表中的記錄。你可以在 mysql 命令提示符或 php 指令碼中執行該命令。以下是 sql delete 語句從 mysql 資料表中刪除資料的通用語法 delete from table name where clause...

mysql delete語句刪除多張表

功能介紹 來從多個表中刪除資料。mysql允許delete語句中使用inner join子句來從表中刪除和另乙個表中的匹配的行記錄。從符合指定條件的t1和t2表中刪除行記錄 例項 從符合指定條件的t1和t2表中刪除行記錄 delete t1,t2 from t1 inner join t2 on t...