タグ

ブックマーク / www.techscore.com (3)

  • Railsライブラリ紹介: N+1問題を検出する「bullet」 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 Rails の便利なライブラリをシリーズでご紹介してみたいと思います。 今回は「N+1 問題」を検出してくれるライブラリ、bullet です。 bullet (http://github.com/flyerhzm/bullet) N+1 問題 N+1 問題とは、OR マッパーを使用しているときに発生しがちな問題です。 何かの一覧画面を作成しているときに、 一覧に表示するデータを取得するために SELECT を 1 回実行(N レコード返される) 各データの関連データを取得するために SELECT を N 回実行 データベースアクセス(SELECT)が合計 N+1 回も実行される(JOIN して 1 回の SQL で取得した方が効率的) というものです。 具体的なコードで考えてみましょう。 例として店舗の一覧画面を作成しているとします。 関係するモデルは以下の通りです

    skyriser
    skyriser 2014/02/24
    あーいいですね。いいですね。こういうの。ラク。
  • 7. Builder パターン

    7.1 Builder パターンとは 第7章では、Builder パターンを学びます。builder とは、建築者や建築業者などを意味する単語です。Builder パターンとは、同じ作成過程で異なる表現形式の結果を得るためのパターンです。 例えば、家を建てることを考えてみます。完成する家がどのような家になるかというのは「家の構築過程」と「素材」大きく2つの要素で決定されると考えてみてください。「作成過程」とは、「どのような順番で、どこに何を配置していくか」というようなことであり、「素材」とは、「柱には何を使って、壁には何を使って・・・」ということであると考えてください。 このとき、「作成過程」には、"平屋を建てるための作成過程" や "2階建ての家を建てるための作成過程"、または "少し変わった平屋を建てるための作成過程" など様々なものが考えられます。同様に、「素材」にも、"柱は木で、壁

    skyriser
    skyriser 2012/05/22
    多様性のあるクラスなら
  • [SQL] pgbench

    pgbenchとはPostgreSQLのベンチマークテストに用いられるプログラムで、PostgreSQLとともに配布されています。 ここではそのpgbenchとベンチマークテストの概要について解説していきます。 pgbench INDEX ベンチマークテスト 1.1. ベンチマークテスト 1.2. SPEC 1.3. TPC pgbenchの導入 2.1. pgbenchとは 2.2. インストール pgbenchの使用方法 3.1. pgbenchの使用手順 3.2. オプション指定 データベースの初期化 4.1. データベースの初期化 4.2. スケーリングファクターの設定 ベンチマークテストの実行 5.1. ベンチマークテストの実行 5.2. 条件を指定してベンチマークテストの実行 PostgreSQL8.0とPostgreSQL8.1の性能比較 6.1. テスト方法 サーバーAの結

  • 1