- ベストアンサー
データベースへの持続的接続
Webアプリケーションへのアクセスが、すべて同一ユーザ(例えばApache)の場合は、 データベースへの接続をmysql_pconnect、PDO:: ATTR_PERSISTENT等を 用いて、持続的接続すると効率がよいのでしょうか? 持続的接続の注意点等ございましたら、ご教示ください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
補足に対してのレスですが、mysql_pconnectには「トランザクションを使うとおかしくなる場合がある。」という致命的なデメリットがありますので、一般的には使われていないと思いますよ。 DBアクセスに関する負荷対策としては、レプリケーションやテーブル分割が一般的と思います。
その他の回答 (1)
- cyanberry
- ベストアンサー率50% (117/230)
回答No.1
・メリット 呼ばれるたびにコネクションを張らなくても良いので、動作が速い。 ・デメリット 使っていないときでもコネクションは張りっぱなしなのでサーバ負荷が高くなる。 1サーバに1つしか張らないのでスレッド間で取り合いになる。1つ遅いスレッドがあると、他のスレッドにも影響する。 トランザクションを使うとおかしくなる場合がある。 極限までパフォーマンスチューニングしたいというわけではないのであれば、普通にmysql_connectで良いと思いますがいかがでしょうか。
補足
ご回答ありがとうございます。 私も普通にmysql_connectでいいかと思いますが、mysql_pconnectに するだけで、パフォーマンスがあがるなら、そうするにこしたことは ない、と思いまして。。 例えば、ありがちなSNSサイト(月間1000万PVくらい)で、 トランザクション使用していない場合は、どちらが適切な接続方法でしょうか? 実際にやってみないと分からないとは思いますが。。