ケースバイケースだと思いますが、
例えば殆ど更新されない(更新頻度が決まっている)ようなマスターデータがあったとして
アプリケーション側で全レコード高速なメモリ上にキャッシュして、高速に一意に取得できるような仕組みがローカルに用意出来て(例えばローカルのmemcachedやNoSQLDB)、かつ一意のキーでしかデータを取得しないような場合はDBから取得するより早く処理できますね。
途中にネットワークが存在したり、メモリとHDDの様な保存場所が違う場合、処理系の差による実行速度の差とは数桁違うオーダーでオーバーヘッド発生することが多いので、こういった場合はキャッシュによって、総合的な処理速度がローカル側で行った方が早いはずです。
また、「RDBMSの関数」が例えばRANDみたいな関数といった意味なのであれば、
スクリプト側で用意するのに比べて高速になるということは無いと思います。
そのRDBMSがCで書かれてるとしたら、ローカル側もCで書かれたライブラリを叩けばいいでしょうし。
あとは、DB設計が残念な場合やRDBMSで扱うのに向いていない構造だったりして、RDBMSとしてそもそもパフォーマンスが出せないような状態だとアプリケーションで頑張った方がマシというケースもあると思います。
アプリケーション側にどこまで仕事をさせるかは難しいところではありますが、
RDBMSが不得意なところやキャッシュ回りは積極的にフロントエンドで実装して問題無いと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/05 05:44 編集