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

时间:2014-05-29 18:45:54

标签: 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)

1 个答案:

答案 0 :(得分:1)

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

  1. 创建,绑定到数据库的连接
  2. 查询sql engine的编译/优化任务
  3. 但批量更新也有一个缺点,即在单个语句中更新多个记录时锁定表,表将被锁定很长时间。因此,在考虑可接受的锁定期的情况下执行批量更新。