亿级数据量
方案1、
直接使用delete
因delete执行速度与索引量成正比,若表中索引量较多,使用delete会耗费数小时甚至数天的时间
方案2、
(1)创建临时表,表结构与原表结构相同
(2)将需要保留的数据插入至临时表中:INSERT INTO t_item_log_2(user_id,item_id) SELECT user_id,item_id FROM t_item_log WHERE id>110262709;
(3)drop原表:drop table t_item_log;
(4)将临时表改名为原表名:rename table t_item_log_2 to t_item_log;
经过测试(以1亿2千条数据为例),drop表一般耗时在120秒以内
此方案主要耗时步骤为第二步,大概花了180秒,若需要保留的数据量不大时,此方案是最佳方案