条件分岐して必要最小限度のカラムを更新した方が良い？　それともまとめて一気に更新した方が良い？


**やりたいこと**  
・MySQLのUPDATE  
・条件によって、更新カラムが異なる  
・1レコードのA,B,Cカラムを更新する場合と、条件によってはDも更新する場合がある

* * *

**質問1.最小限度のカラムを2回更新？ まとめて1回更新？**  
・条件に応じてA,B,Cカラム更新した後、条件によってはDも更新(つまり2回)すれば良い？  
・それとも、不要なレコードも含め、A,B,C,Dカラムをまとめて1回更新した方が良い？

・条件に応じて必要最小限の更新カラムを指定するイメージ

[code]

    if(){
      SQL文1 … 1レコードの内の幾つかのカラムを指定
    }elseif{
      SQL文2 … 上記で指定しなかった幾つかのカラムを指定
    }
    
[/code]

* * *

**質問2.MySQLへは極力アクセスしない方が良い？**  
・PHPでもMySQLでも出来る場合は、アプリ側で処理した方が良いのでしょうか？  
・どちらで実装すべきかいつも迷います




一般論として、実行速度に重きをおくならば、以下の2点を重要視するのが好ましいです。

  * 発行するSQL文の数を少なくする
  * なるべく MySQL 側 (RDBMS側) で処理をする

よって質問1の回答は「まとめて1回更新した方が良い」になります。

そして質問2の回答は「MySQL側で処理したほうが良い」になります。

ただしこれらは一般論であって、その他の条件によっては、必ずしもそうとは言い切れないことに注意してください。また計測して決める、という大原則を覚えておくと良いかもしれません。




一般論として、実行速度に重きをおくならば、以下の2点を重要視するのが好ましいです。

  * 発行するSQL文の数を少なくする
  * なるべく MySQL 側 (RDBMS側) で処理をする

よって質問1の回答は「まとめて1回更新した方が良い」になります。

そして質問2の回答は「MySQL側で処理したほうが良い」になります。

ただしこれらは一般論であって、その他の条件によっては、必ずしもそうとは言い切れないことに注意してください。また計測して決める、という大原則を覚えておくと良いかもしれません。

