让我们假设我有两列A和B.表上有一列的索引,但不能在B列 我要发出数百万查询:MySql更新优化?
UPDATE t1 SET b=b1 WHERE a=a1;
UPDATE t1 SET b=b2 WHERE a=a2;
....
有从任何地方1至100,000行对应于每个唯一值a
。平均而言,这是100左右
有关行的平均60%的每个更新语句不会为这些行b
因为改变已经拥有所需的值。对于30%的更新,没有匹配的行将被更改。
是否有意义使用这样的语句?
UPDATE t1 SET b=b1 WHERE a=a1 AND b<>b1;
将通过消除不必要的回写到磁盘加速过程还是Mysql的5聪明地认识到,什么都没有改变,也没有必要写回磁盘?