2011-12-21 13 views
3

私はコンピュータ科学以外のバックグラウンドから来ていましたが、今はデータベースから値を取得するためにactive_recordを使っているRuby開発者として働いています。私は慣れていません。皆さんに、これらのすべてと、これらの用語を説明する良いブログやウェブサイトを手に入れることができる場所を説明することで、人々を助けてください。素敵なクエリを書くには

答えて

2

ここでは2つの別々のものがあります。

  1. NログN、Nは^ 2等が挙げられる。これらは、アルゴリズムの実行時間はを参照してください。その入力の大きさの関数として表します。
  2. 用語N + 1のクエリは、非常に特定の問題を指します。ポストと著者がモデルとして標準のブログのサンプルアプリケーションを持っていると仮定します。私は実際に何かを書いた著者の名前をすべて集めることを選ぶかもしれません:

    名前= Post.all.collect {| post | post.author.name}

これは、各ポストのための1つの余分のSQLクエリをトリガーするので、あなたはNのポストを持っていたならば、あなたはN + 1つのクエリを実行終わると思います。これらの余分なものはすべて非常に高速なクエリですが、オーバーヘッド/レイテンシがすぐに足りるため、すぐに処理が遅くなる可能性があります。

Rails active record guideには、これと緩和策があります。

関連する問題