( ,,`・ω・´)ンンン?

qiita.com

 これ本当にアンチパターンなんだろうか?

 大規模トラフィックの現場では、基本的にはなるべくDBのほうに処理を任せる(さらに言えばストアドプロシージャなども駆使してDBのパフォーマンスをフルに使う)のが常識なのかなと思っていた。

 アプリケーションのやるべきことというのは、まるっと出てきたデータをなるべくループを回さずアウトプットに渡すことだ。なぜならある種のロジカルな処理はプログラミング言語で書くよりもそれに特化したDBの性能を使ったほうが高速かつ洗練されているからだ。その中でSQLに無駄があるならそれを削るのは当然のことであるけれども、DBはただデータを入れておくだけの箱にすぎないという発想はちとまずすぎる。それではすべてSelect * from 某; で得られた結果をループでぶん回してなっとくいくまで引っ掻き回すということになってしまうんじゃないか。まあようするに、これはDBでできるロジカルな処理はDBに任せたほうがいい、でなければDBというものが何のためにあるのか見つめなおしたほうがいいと言っているわけである。