大规模的sql删除查询

时间:2013-04-07 09:56:37

标签: mysql sql optimization sql-delete

我必须根据id值删除大量数据。哪一个是最快的:

DELETE FROM myTable WHERE id = '10' OR id = '20' OR id = '43' OR id = '54' .......

DELETE FROM myTable WHERE id = '10'; DELETE FROM myTable WHERE id = '20'; ........

如果您有其他解决方案,请不要犹豫告诉我。

(这里的id不是主键或索引,是一个外键,因为它引用了一个单词,我可以在这个数据库中有一个单词的多个条目)

我使用MySQL,但我希望我的查询可以应用于其他RDBMS

2 个答案:

答案 0 :(得分:5)

第一个更快但我想使用这样的IN运算符来获得更多readability但性能相同

DELETE FROM myTable WHERE id in ('10','20','30',...)

答案 1 :(得分:0)

首先应该更快

根据查询优化工具输出,使用一个语句比使用一组语句更好。