質問: **やりたいこと** ・MySQLのUPDATE ・条件によって、更新カラムが異なる ・1レコードのA,B,Cカラムを更新する場合と、条件によってはDも更新する場合がある --- **質問1.最小限度のカラムを2回更新? まとめて1回更新?** ・条件に応じてA,B,Cカラム更新した後、条件によってはDも更新(つまり2回)すれば良い? ・それとも、不要なレコードも含め、A,B,C,Dカラムをまとめて1回更新した方が良い? ・条件に応じて必要最小限の更新カラムを指定するイメージ ``` if(){ SQL文1 ... 1レコードの内の幾つかのカラムを指定 }elseif{ SQL文2 ... 上記で指定しなかった幾つかのカラムを指定 } ``` --- **質問2.MySQLへは極力アクセスしない方が良い?** ・PHPでもMySQLでも出来る場合は、アプリ側で処理した方が良いのでしょうか? ・どちらで実装すべきかいつも迷います
回答: 一般論として、実行速度に重きをおくならば、以下の2点を重要視するのが好ましいです。 * 発行するSQL文の数を少なくする * なるべく MySQL 側 (RDBMS側) で処理をする よって質問1の回答は「まとめて1回更新した方が良い」になります。 そして質問2の回答は「MySQL側で処理したほうが良い」になります。 ただしこれらは一般論であって、その他の条件によっては、必ずしもそうとは言い切れないことに注意してください。また計測して決める、という大原則を覚えておくと良いかもしれません。