场景
要删除表T中的大部分数据,因表太大,删除慢,得到另一种更加快速方法
方法
-- 1. 创建新表(保留不需要删除的数据) CREATE TABLE T_new LIKE T; -- 2. 插入保留数据(假设需保留imei不在列表中的数据) INSERT INTO T_new SELECT * FROM T WHERE imei IN ( xxxx-- 要过过滤出来的设备号 ) ); -- 3. 重命名表(原子操作) RENAME TABLE T TO T_old, T_new TO T; -- 4. 清理旧表 DROP TABLE T_old;适用场景:需删除超过50% 的数据,且imei条件可批量筛选。
优势:避免大规模删除操作,直接重构表结构。