DBの永続的接続

( DB )

Mysqlの設定していたときにちょっと疑問におもったので調査。

mysql.max_persistent integer The maximum number of persistent MySQL connections per process.

1プロセスあたりに永続接続できる最大接続数。

ちなみに永続接続っていうのは ・DBのセッションがずっと持ちっぱなしで接続が終了してもセッションは開きっぱなしの状態。 ・もし開いている接続があればそれを使う。

これだと効率がよくなるね、でもなんかゾンビ化しそう。

非永続接続は ・DBの接続が終了すればセッションが閉じちゃう感じか。

そんでもって上記の設定だと1プロセスに待ち状態の接続を最大なん個もたせるかか。

例えば、永続接続は、1リクエストでmysql_connect()を2回接続すると2個のセッションが確立されるのでは なくてすでに最初で接続済みのものを利用する。条件はまったく同じ接続先の場合(詳細割愛)。

1リクエスト1コネクション

非永続だと

1リクエスト2コネクションになっちゃうわけか

じゃこの違いってなんだ? 後者だと普通に考えて効率だよな。前者は一貫性のあるデータ取れたり、トランザクションも統一できるから安全性かな。

なんか読めてきた。

http://www.studyinghttp.net/connections http://php.net/manual/ja/features.persistent-connections.php http://php.net/manual/ja/function.mysql-connect.php