修剪MySQL表

时间:2011-07-18 17:58:13

标签: mysql

我想修剪现有的MySQL ISAM表,1000万条记录。

删除最后500万条记录的SQL语句是什么?这只是一个日志表,删除记录没有造成任何损害。

4 个答案:

答案 0 :(得分:1)

您可以将ORDER BY和LIMIT与DELETE一起使用,以仅影响有限数量的行。你获得'最后'500万的方式取决于你所确定的记录年龄,并在你的ORDER BY中使用它。

答案 1 :(得分:1)

delete from table where id >= (select * from (select id from table order by id limit 4999999,1) as t )

答案 2 :(得分:0)

SELECT * FROM ???(你是桌名)ORDER BY ?????? LIMIT 5000000

这里??? =你的表名,和??????是你排序表的方式。因此,如果您有某种日期或数量的条目进行排序。
http://www.w3schools.com/sql/

我在上面的示例中使用了SELECT,因此如果它正常工作,您可以先尝试一下!如果确实有效,请将SELECT更改为DELETE :) 如果它不起作用,那么你要尝试别的东西来排序:)

答案 3 :(得分:0)

这是否有效

DELETE FROM tableA ORDER BY some_indexed_column DESC LIMIT 1000000