タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

rubyとDBに関するd_animal141のブックマーク (4)

  • Active Record で N+1 問題 - 日々精進いたします

    最近会社でHibernateのN+1問題事例を調べてたんですが、ActiveRecordでも当然のように起こりますね。 BOOKSテーブルが、1対NでREVIEWSテーブルと関連を持っています。(BOOKSが1、REVEWSがN) 以下のコードでは、BOOKSテーブルを全件検索して、それに関連するREVIEWSテーブルのレコードを取得して、REVIEWSテーブルのBODYカラムを出力する。 Book.all.each { |book| book.reviews.each { |review| puts review.body } } このコードではBOOKSテーブルに対して1回のSQLが発行され、REVIEWSテーブルに対してはBOOKSテーブルのレコード数分のSQLが発行されます。N+1問題です。BOOKSテーブルとREVIEWSテーブルの多重度に関係なく、親テーブルを複数検索して、子テ

    Active Record で N+1 問題 - 日々精進いたします
    d_animal141
    d_animal141 2014/03/12
    Active Record で N+1 問題
  • SQL LIKE - 1Keydata SQL入門

    SQL > SQL コマンド > Like LIKE は WHERE 句に使われるもう一つのコマンド。基的に、 LIKE を使って、あるパタン (pattern) により必要なデータを見つけることができます。逆に言えば、 IN を使う場合、必要な条件がよく分ります; BETWEEN) を使う場合、ある範囲を示すことになります。 LIKE のプログラミングは次のようになります。 {パタン}はよくライルドカード (wildcard)を含みます。以下は幾つかの例を挙げます。 'A_Z': すべて 'A'を始めとし、続いて何れの一文字を入れ、そして 'Z' で終わる文字列。 'ABZ' 和 'A2Z' はこのパタンに一致しますが、 'AKKZ' はそれに一致しません ( A とZとの間に二文字があり、一文字ではないから)。 'ABC%': すべて 'ABC' を始めとする文字列。例えば、 'AB

    d_animal141
    d_animal141 2013/08/05
    SQL LIKE - 1Keydata SQL入門
  • kkaneko.com

    kkaneko.com 2025 著作権. 不許複製 プライバシーポリシー

    d_animal141
    d_animal141 2013/08/04
    Ruby 用の sqlite3-ruby パッケージを利用して Ruby から SQLite バージョン 3 を使う
  • SQLite を Ruby で使う - RubyCocoa メモ

    Mac OS X 10.5 Leopard には、Ruby とともに、SQLite 3 も sqlite3-ruby も標準でインストールされているので、それを使ってみたときのメモ。自分で書いてる RubyCocoa のプログラムで使ってとりあえず動いたものをメモするけど、使い方が正しいかどうかはちょっとわからない。もっといい方法や、正しい方法が見つかれば、順に書き加えたり、書き換えたりしていくつもり。 SQLite とは SQL データベース管理ソフトで、MySQL みたいにサーバーにインストールしてデータベースを管理するのではなく、データベースをローカルのファイルで管理する(ネットワーク上にあってもいいかもしれないけど、試したことがないのでわからない)。つまり、データベースがファイルなので、移動させたり、バックアップしたりと管理が楽。ただ、そのために巨大なデータベースには向かないけど、

    d_animal141
    d_animal141 2013/08/04
    SQLite を Ruby で使う
  • 1