以下に紹介する「O/Rマッパーによるトラブルを未然に防ぐ」というスライドが大変勉強になったのでご紹介

O/Rマッパーって何?

リレーショナルデータベースとオブジェクト指向の橋渡しをするものです。

データベースのデータ一つ一つをプログラムレベルでのオブジェクトに置き換えたり、 オブジェクトの構造からデータベースのテーブル構造を生成したりと、エンジニアの負担を減らすためのものです。

O:オブジェクト R:リレーショナル M:マッピング なので、ORMという略し方もありますね。

O/Rマッパーの何がいけないの?

ヒトコトでいうと「パフォーマンス」に影響が出るからと解釈しています。

パフォーマンス!?

はい、パフォーマンスです。 データベースでデータの一元管理をしていますので、負荷がかかると一気にレスポンスが悪くなってしまいます。

たとえば、、、どんな?

N+I問題(という単語を知りませんでした)など。

具体的に「1回でできるじゃん」というものをループでやってしまうような、「実装が悪くてパフォーマンスが低下する」ものが特にNGです。 「ぐるぐる系」と表現していますね。

たとえば1万レコードヒットしたら1万回Selectが発生してしまいますが、 1回のSelectが0.0002秒だとしても、1万回が積み重なると単純に2秒かかってしまうわけです。 これは最低限知ってもらいたいです。

元情報

O/Rマッパーによるトラブルを未然に防ぐ http://www.slideshare.net/kwatch/how-topreventorm-troubles