讓我們假設我有兩列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聰明地認識到,什麼都沒有改變,也沒有必要寫回磁盤?