2008-10-25
Ruby on RailsでDB負荷分散
Railsで簡単に負荷分散できんもんか?
複数サーバーあるわけじゃないので
DBをレプリケーションしつつ
ユーザーごとにDB分ける・・・なんて事ができないし~
でもこの手の処理を実現するライブラリはみっけた。
・acts_as_readonlyable
・magic_multi_connection
てか、そもそも1テーブルに大量のデータあっちゃダメだろ~
って気がするんだけど。違うのかな?
目的としてはURLごとにタグを付けるような・・・そんな機能を作りたい。
そうするとURLの数分、盛大にデータが溜まっていく。
最終的には何十万件・・・どころじゃないよね。多分・・・。
日付で分割すると、
全体にアクセスする場合がめんどいので
用途的にもドメインとかでテーブル分ける方法がいいかなー。
urls_jp
urls_com
みたいに。
そーすると、ドメインでアクセスするテーブルが分かれるので
ちったー負荷分散になるだろう。
んで本題だけど(遅)
こういう・・・
jpのURLだったら動的に_jpのテーブルをCreateする。
comのURLだったら・・・
とテーブルを生成しつつ、データ操作を行う処理を
やってくれるライブラリとかプラグインって無いものかな?
見にいくテーブルを割り振ってくれるだけでもいいのだけど・・・。
Railsの知識皆無の状態で
てきとー実装はしてみたものの
Modelクラスとか使えなくなっちゃうし~アクセスするのは毎回find_by_sqlだし~
こんなのなんか違う気がする・・・良い方法ないものか。
実装方法はこんなん。
複数サーバーあるわけじゃないので
DBをレプリケーションしつつ
ユーザーごとにDB分ける・・・なんて事ができないし~
でもこの手の処理を実現するライブラリはみっけた。
・acts_as_readonlyable
・magic_multi_connection
てか、そもそも1テーブルに大量のデータあっちゃダメだろ~
って気がするんだけど。違うのかな?
目的としてはURLごとにタグを付けるような・・・そんな機能を作りたい。
そうするとURLの数分、盛大にデータが溜まっていく。
最終的には何十万件・・・どころじゃないよね。多分・・・。
日付で分割すると、
全体にアクセスする場合がめんどいので
用途的にもドメインとかでテーブル分ける方法がいいかなー。
urls_jp
urls_com
みたいに。
そーすると、ドメインでアクセスするテーブルが分かれるので
ちったー負荷分散になるだろう。
んで本題だけど(遅)
こういう・・・
jpのURLだったら動的に_jpのテーブルをCreateする。
comのURLだったら・・・
とテーブルを生成しつつ、データ操作を行う処理を
やってくれるライブラリとかプラグインって無いものかな?
見にいくテーブルを割り振ってくれるだけでもいいのだけど・・・。
Railsの知識皆無の状態で
てきとー実装はしてみたものの
Modelクラスとか使えなくなっちゃうし~アクセスするのは毎回find_by_sqlだし~
こんなのなんか違う気がする・・・良い方法ないものか。
実装方法はこんなん。
#テーブル名を取得する ○○_jpや○○_com table_name = get_table_name(url) #すでにテーブルが生成されていないか調べる。 #url_mstsは生成したテーブル名を保持しておくテーブル。 count = UrlMst.count_by_sql( ["select count(*) from url_msts where table_name = ?", table_name]) if (count == 0) #生成されてなかったので生成する url_mst = UrlMst.new url_mst.table_name = table_name url_mst.save #Create文発行 ActiveRecord::Migration.create_table table_name, :force => true do |t| t.text "url" t.timestamps end end #生成したテーブルにアクセス。 #・・・ここでUrlMstクラスを使っていいものなのか?? url_mst = UrlMst.find_by_sql( ["select id from \"#{table_name}\" where url = ?", url])
登録:
コメントの投稿 (Atom)
タグクラウド
ラベル
- FireFox拡張機能 (2)
- JavaScript (3)
- mixi (1)
- OpenSocialアプリ作成日記 (5)
- ruby on Rails (2)
- twitter (1)
- Webサービス (7)
- yahoo pipes (1)
- カスタマイズ (4)
- キャロットクラブ2006年度募集馬 (6)
- キャロットクラブ2007年度募集馬 (24)
- キャロットクラブ2008年度募集馬 (5)
- スポーツ (44)
- ツール (6)
- ネットワーク理論 (1)
- ひとりごと (43)
- ホスティングサービス (3)
- 一口馬主 (36)
- 気になるニュース (35)
- 読書 (12)
- 買い物記録 (9)
0 コメント:
コメントを投稿