Mysql性能

标签 mysql jdbc jdbctemplate

哪种方法更适合使用 jdbc 在 mysql 数据库中进行批量删除。

我有一个主键列表。需要删除它们。

  1. 使用提供的批量更新 api。
  2. 删除 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/

相关文章:

php - 不知道如何解决这个 javascript/图像映射/PHP 问题

java - JDBCTemplate 传递带/多个参数

mysql - 配置 glassfish 以部署 .war 并使用 jdbc

java - Hikari 内存中 HSQL 连接池

java - 与普通的PreparedStatement相比,使用Spring jdbcTemplate对性能造成的影响

MySQL Left Join 与 SUM 和Where 子句返回 Null

MySQL Unknown column on 子句

php - 在三个表上使用 JOIN - MySQL

mysql - "ANY Command denied for user"通过 JDBC 的 View-over-View DDL

java - 使用 JdbcTemplate 和 Oracle 11g/H2 进行 Web 分页,无可滚动结果集