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