こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

データベースに接続したままの負荷について

データベースに一度接続したら、最後に切断するのが普通(?)だと思います。しかし接続する際にサーバにかかる負担が大きいとどこかのサイトで見ました。

もし、1日のアクセスが30万件あったとして、毎回接続と切断をするとかなり負荷がかかると思うのですが、その際に一番最初にデータベースを接続して、切断しないままでいることは可能なのでしょうか?また、もし接続したままでいるといくらか時間が経った後に自動的に切断されてしまうということはあるのでしょうか?

よろしくお願いします。

投稿日時 - 2007-02-15 18:24:05

QNo.2755323

すぐに回答ほしいです

質問者が選んだベストアンサー

>切断しないままでいることは可能なのでしょうか?
可能です。

WEBシステム開発をしていますがエラーでも出ない限り
コネクションを切る(破棄する)方が稀です。

ある程度決まった数のコネクションをWEBアプリとDB間で維持し続け、
要求があったプログラムにコネクションを渡し、
使い終わったら再びプログラムからコネクションを受け取る。

この維持することをプーリング(コネクションをプールする)と言っています。


> 自動的に切断されてしまうということはあるのでしょうか?
あります。

DB側の自動切断(タイムアウト)であったり、通信障害であったり。
ですので、プールしているコネクションを他のモジュールに渡す前に
適当なクエリを送る等して生存確認してから渡すようにしています。

MySQLのタイムアウトは初期設定で8時間…だったかな。(自信なし)

投稿日時 - 2007-02-15 20:24:16

お礼

ありがとうございます。

データベースから切断なんて稀なのですね・・・。基本的に切断するものだと思っていたので・・・。
ということは、一度データベースにコネクションを張ってそれを使い回せばいいということですね。

Apache::DBIがあると思うのですが、それについて詳しいサイトとかご存知でしたら教えていただけないでしょうか?私も調べているのですが、なかなか詳しく書かれているサイトが見つからないので・・・。

投稿日時 - 2007-02-16 01:50:20

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問