目的
- 在我们在做数据清理时,担心直接删除会影响数据库性能,就采用了批量删除。
- 但批量删除时,我们通常做的操作就是把数据查询出来在删除。
- 而本条sql可以实现直接在数据库内部,进行批量删除,避免了数据传输的损耗。
参数说明:
im_user_msg_box:要删除的表数据 limit: 删除的数量
delete iumb from im_user_msg_box iumb
inner join (
select
self_uid,peer_uid,s_msg_id
from im_user_msg_box
where self_uid = 1636633353333551106 limit 0,1
) iumb2
on
iumb.self_uid = iumb2.self_uid and iumb.peer_uid = iumb2.peer_uid
and iumb.s_msg_id = iumb2.s_msg_id;
业务使用说明:
- 定时调用删除 sql
- 定时查询count(1)操作,确认数据是否清理完成