哪种方法更适合使用 jdbc 在 mysql 数据库中进行批量删除。
我有一个主键列表。需要删除它们。
- 使用提供的批量更新 api。
- 删除 having where 子句 having in 子句。
最佳答案
在 WHERE 子句中使用 IN 更快,因为它减少了数据传输。然而,这是一个折衷,因为如果查询太长,MySQL 需要时间来解析它。如果要删除的记录太多,我建议您将其拆分为 10K 长度的查询。
还有一种解决方法,就是当你有太多的记录要删除的时候,你用另外一个查询得到它们,你可以直接使用,例如:
DELETE FROM table1 WHERE id IN (SELECT id FROM table2 WHERE status = 1)
关于Mysql性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9015602/