mysql where in的最大条数是多少?

背景

mysql表需要批量更新60w数据,表内数据大概2000w

sql

UPDATE table1 SET field_1 = 5 WHERE id = 19823049;

两种方式

第一种 每行一条

  1. UPDATE table1 SET field_1 = 5 WHERE id = 19823049;
  2. UPDATE table1 SET field_1 = 5 WHERE id = 19823043;

第二种 where in

UPDATE table1 SET field_1 = 5 WHERE id in (19823049,xxx,xxx,1324134....);

## 问题

  1. mysql where in的最大数量的是多少?
  2. 两种场景哪个更优,或者其他更好的解决办法?
  3. 这里where in主键id和in其他的普通字段,底层处理上有差别吗?

回答>>

根据文档operator_in,取决于参数max_allowed_packet有多大。
希望能帮助到你。