日期:2014-05-16  浏览次数:20674 次

mysq如何快速l删除大量数据的问题
请教下:

现在公司用的mysql数据库,里面有个记录表,大概有几千万条记录,保留了04年以来的消费记录。

现在决定只保留08年以来的,现在需要删除08年以前的消费记录,大概也是几千万条。

该表的每条记录都是有提交时间字段,datetime格式。

假设表名为a,时间字段为time

我现在想用

delete from a where time < "2008-01-01 00:00:00";

担心几千万条的记录要删除很久,不知道有没有其他好的方法。

------解决方案--------------------
给TIME字段加一个索引就可以了
------解决方案--------------------
explain select * from a where time < "2008-01-01 00:00:00"; 
结果

------解决方案--------------------
如果想要删除一个表的所有行,使用TRUNCATE TABLE tbl_name 而不要用DELETE FROM tbl_name