我在mysql数据库中有大约110,000,000个条目。我想将其限制为恰好1亿个条目。我怎么想这样做的是分三个步骤:如何删除超过一定数量的数据库中的条目
- 创建新表
- 插入到具有
INSERT...SELECT...LIMIT 100000000
新表。 - 删除旧表并重命名新表。
有没有办法用DELETE
查询来做到这一点?
我在mysql数据库中有大约110,000,000个条目。我想将其限制为恰好1亿个条目。我怎么想这样做的是分三个步骤:如何删除超过一定数量的数据库中的条目
INSERT...SELECT...LIMIT 100000000
新表。有没有办法用DELETE
查询来做到这一点?
也许最好的办法是有两个疑问:第一,得到计数,然后删除正确的行数。例如:
SELECT COUNT(*) FROM t
/* 110,000,000 */
DELETE FROM t LIMIT 10000 /* (110,000,000 - 100,000,000 = 10,000) */
如果你知道确切的数字,你可以删除行:
delete t from t
limit 10000000;
但是,它可能是更快地使用你的方法。
上面会删除100M行,还是保留100M行? – David542
以上将删除10,000,000行。 –
@ David542但是,删除哪些行是任何人的猜测 – Strawberry