NakajiJapan

餓鬼の超弩級日記


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

No Comments »