• ベストアンサー

データベースへの持続的接続

Webアプリケーションへのアクセスが、すべて同一ユーザ(例えばApache)の場合は、 データベースへの接続をmysql_pconnect、PDO:: ATTR_PERSISTENT等を 用いて、持続的接続すると効率がよいのでしょうか? 持続的接続の注意点等ございましたら、ご教示ください。

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

  • ベストアンサー
  • cyanberry
  • ベストアンサー率50% (117/230)
回答No.2

補足に対してのレスですが、mysql_pconnectには「トランザクションを使うとおかしくなる場合がある。」という致命的なデメリットがありますので、一般的には使われていないと思いますよ。 DBアクセスに関する負荷対策としては、レプリケーションやテーブル分割が一般的と思います。

その他の回答 (1)

  • cyanberry
  • ベストアンサー率50% (117/230)
回答No.1

・メリット 呼ばれるたびにコネクションを張らなくても良いので、動作が速い。 ・デメリット 使っていないときでもコネクションは張りっぱなしなのでサーバ負荷が高くなる。 1サーバに1つしか張らないのでスレッド間で取り合いになる。1つ遅いスレッドがあると、他のスレッドにも影響する。 トランザクションを使うとおかしくなる場合がある。 極限までパフォーマンスチューニングしたいというわけではないのであれば、普通にmysql_connectで良いと思いますがいかがでしょうか。

sweepea
質問者

補足

ご回答ありがとうございます。 私も普通にmysql_connectでいいかと思いますが、mysql_pconnectに するだけで、パフォーマンスがあがるなら、そうするにこしたことは ない、と思いまして。。 例えば、ありがちなSNSサイト(月間1000万PVくらい)で、 トランザクション使用していない場合は、どちらが適切な接続方法でしょうか? 実際にやってみないと分からないとは思いますが。。

関連するQ&A

専門家に質問してみよう