mysql全表更新加where和不加where效率有区别吗?

比如update user set status=1和update user set status=1 where status=0,要把所有user.status都改成1。

status字段只有0和1两个值,创建过索引。
自己explain前者是全表,后者走索引。但全表里面部分数据不变的话,会占用时间吗?

大多数情况下,加where更快,这与你是不是更新成一样的值没关系,这个只考虑要更新的记录数。
但是,你可以做几个这样的实验:
全部都是0,加条件或者不加条件全部更新成1;
全部都是1,加条件或者不加条件全部更新成1。
以上4种情况,去测下各自需要多少时间,实践出真知,毕竟这个更新效率影响的不仅仅只有这个几个因素,某个环境条件发生变化后,可能会有其他你不知道的环境条件同时发生了变化

不加where语句运行会快一下

加where 会更快啊.
你只考虑了更新的条数,加不加where一样,但不加where 扫描的行数会多啊.