バイタリフィに入社してから、なかなかEXPLAINを
分析することが無かったのですが、ここ最近色々あり
実行計画を見ることになったためつらつら書かせていただきます。
EXPLAINはデータベースサーバのオプティマイザーが
PHPやストアドプロシージャなど各所から発行された
SQL(クエリ)をどのような手順を経て実行するのかを
分析、解析する方法です。
どのシステム(サーバ)でもそうですが、ANALYZE(アナライズ)
した結果(現状を分析、解析)、ではどのように動かそう?
どういう風に実行すれば効率的だろう?と考えています。
人間ではなく、機械も考えて行動しているんですね。
人間の頭ほどフレキシブルではないため、外的要因など、
ケェスバイケェスの行動はできませんが、ちゃんと分析して
処理(行動)しています。
なので、毎日問題なく動いていたプログラムがいきない
動かなくなったりすることもあります。
これは前日実行していた内容と当日実行した内容が異なるからですね。
無論、考えさせないようにすることもできますし、
完璧ではないにしろ、できる限り日々の実行計画が
変わらないように設計することもできます。
書き出すとキリが無いのでここまでにしますが、
いずれにせよ機械は難しい。。。
ただ、どう動いているかを理解すると楽しいです。