ActiveRecordを使ったRailsアプリは,デフォルトでデータベースへの接続をプールするようになっています. ActiveRecordユーザとしては待ちわびたぜ!的な機能らしいのですが,設定等でこれをdisableすることが出来ず,LVS+keepalivedを介する場合にはロードバランシングが最初の接続時にしか為されずがなかなか厄介です. 対策として思いついたのは プールした接続を早い周期で捨てる LVS+keepalivedではなく,MySQL Proxyでバランシングする(Proxyへの接続はプール) そもそも接続をプールさせない くらいでした. どうするのがセオリーなのかと調べてみると コネクションプーリングの話 - naoyaのはてなダイアリー 2006-09-03 など4年近く前に議論されていて,"あー,高速道路あるなあ"と,コネクション確立のコストを調べる前に「プール
2010年04月26日00:03 Ruby ActiveRecordの :include と :joins で発行されるSQLが全く違うようです わからないことが一杯!!今回は ActiveRecord で JOIN するために使う :include オプションと :joins オプションの違いを調べてみました。ActiveRecord 2.3.5 です。 利用するデータとしては blog has many articles な関係で、1つの blog あたり10個の記事を持っているとします。具体的にはこのような状態です。 # blogs テーブル +----+--------+---------------------+---------------------+ | id | name | created_at | updated_at | +----+--------+-------
知らない人もいるかもしれませんが、 Rails で使われている ORマッパーである ActiveRecord は、Rails からでなくても単品で動きます。 ActiveRecord はとても簡単で便利なので、 Rails 使うまでもないちょっとした日常のスクリプトでもどんどん使いましょう。 たとえば CREATE TABLE foods ( id INT NOT NULL PRIMARY KEY AUTOINCREMENT, name VARCHAR(100) NOT NULL UNIQUE, price INT NOT NULL ); と書いたファイル tables.sqlite を用意して、 $ sqlite3 test.db < tables.sqliteという感じで DB を作ります。 そしたら、こう。 require 'active_record' base_dir = Fil
メモ代わり。 ActiveRecord require 'rubygems' require 'active_record' ActiveRecord::Base.establish_connection( :adapter => 'postgresql', :host => 'localhost', :username => 'foo', :database => 'baz', :encoding => 'utf8' ) class User < ActiveRecord::Base end User.find(:all).each do |u| p u end Migrate Rakefile ほんとは設定ファイルわけたほうがいいんだけどね require 'rubygems' require 'active_record' require 'logger' ActiveRecord:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く