我使用查询删除大约9,000,000行,但没有删除行是什么问题?
DELETE FROM `messages` WHERE last_change < 1332201600 && last_change !=0
// 1332201600是时间戳
答案 0 :(得分:2)
从大型表中删除900万行可能需要很长时间。在整个命令完成并提交事务之前,不会删除任何行。你必须耐心等待。
我还会检查你的WHERE子句是否实际匹配某些行。尝试运行此声明:
SELECT *
FROM `messages`
WHERE last_change < 1332201600 && last_change !=0
LIMIT 10
如果这返回10行(并且如果问题中的信息正确则应该如此),那么原始的DELETE语句将删除至少那10行。
答案 1 :(得分:2)
也许问题在于和运营商,它应该是:
DELETE FROM `messages` WHERE last_change < 1332201600 AND last_change !=0