MySQL の外部結合で、著しく処理速度が低下する。
MySQL + php で Web サイトのアクセス集計を、もともと使っていたシステムを元に作り直していたときに出会った疑問。
外部結合をすると、なぜここまで急に処理が遅くなるのか。。。
もともと使っていたシステムよりもやけにデータを表示する時間が短いなぁ、と思っていたのだけど、
0件のデータも表示するために外部結合を加えたら、同じくらいにまで処理が遅くなった。
だけど、そこまで支障がある遅さではなかったので、処理の遅さと0件データの必要性を天秤にかけた結果、
その時は0件データをあきらめることにしたのだ。
結局、外部結合をすると処理速度が著しく遅くなることはわかったものの、何故、というところまではたどり着かず終いだった。
簡単にネットで調べた感じだと、特に「外部結合=遅い」というような情報はなかったんだけどなぁ。
ただそれだけに、どのような条件で外部結合の処理速度が著しく低下するのかは非常に気になるところ。
頭の片隅に置いておいて、機会があったら追って調べてみようと思う。