mysql - 多个更新或更新...在哪里

标签 mysql database performance sql-update

哪个版本更好(性能)?

1. update my_table set my_col = 1 where my_id = 100
   update my_table set my_col = 1 where my_id = 110
   update my_table set my_col = 1 where my_id = 120

2. update my_table set my_col = 1 where my_id in (100, 110, 120)

最佳答案

在您的情况下,两种方式的响应时间几乎相等,因为您只运行 3-4 个查询。
但是对于更多的查询或更新(批量更新更快),第二种方式肯定会更快,因为这会减少,

  1. 创建、绑定(bind)数据库连接
  2. 查询sql引擎的编译/优化任务

但是批量更新也有一个缺点,即当您在单个语句中更新多个记录时锁定表,表将被锁定那么长的时间。因此在考虑可接受的锁定期的情况下执行批量更新。

关于mysql - 多个更新或更新...在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23940714/

相关文章:

php - 如何查找两个表之间的重复数据并删除其中一个

PHP - 上传 CSV、插入到多个表并在其他地方显示

php - 从更新的数据库中选择数据

java - 对象大小和 Java 中的锁定性能之间有关系吗?

performance - 提高二郎牛仔表现

php - 空格作为第一个字符

mysql - 我可以在一个 SQL 查询中删除多个表上的条目吗?

sql - 如何提高 SQL Server Select 查询的性能?

performance - C#委托(delegate)参数大小

database - 用于存储来自移动传感器(GPS、加速度计等)的用户数据的 SQL 与 NoSQL 数据库