はのは、カラムAのインデックスがあり、私は二つの列AとBを持つテーブルがあると仮定しますが、列B に私のような数百万のクエリを発行したくない:どこからでもありますMySql UPDATEの最適化ですか?
UPDATE t1 SET b=b1 WHERE a=a1;
UPDATE t1 SET b=b2 WHERE a=a2;
....
を各ユニーク値a
に対応する1〜100,000行。平均で約100です。
これらの行については、平均で60%の更新ステートメントは変更されません。b
には既に望ましい値が設定されています。 30%の更新では、一致する行はどれも変更されません。
このような文を使用することは意味がありますか?
UPDATE t1 SET b=b1 WHERE a=a1 AND b<>b1;
それは、ディスクへの不要な書き戻しをなくすことで、プロセスをスピードアップウィルやMySQL 5は何も変わっていないされており、ディスクへの書き込みする必要がないことを認識するのに十分なスマートですか?