CakePHP の database.php
中に persistent
という設定項目があります。
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
//'encoding' => 'utf8',
);
}
なんでこんな設定項目が必要なのか理解できなくて必死に検索してたらなんとなく分かってきたので記録として残そうと思います。
この persistent
という項目は接続の永続化をするかどうかを決めるのですが、平たく言うと既に開いている接続があればそれを使いまわして、接続、切断するコストを抑える設定だということらしいです。オブジェクトの永続化とは違うらしいです。
MySQL を例にとって考えると persistent
が true
なら接続を使いまわす mysql_pconnect()
が使われて、逆は mysql_connect()
が使われるようになります。
mysql_connect()
を使った場合は明示的に接続を切断するか、スクリプトの実行が終了したと同時に接続が切断されますが、mysql_pconnect()
を使った場合はスクリプトの実行が終了しても接続が維持され続けます。
何でもかんでも接続を永続化しすぎると MySQL の接続上限数に達するかもしれないので注意。
こんな感じかな。間違ってたら誰かコメントで教えてくれると嬉しいです。
参考
投稿者紹介
-
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。
最近のエントリ
- レポート2019.10.28ユニキャストレストランを開催しました🍳
- レポート2019.08.29社内研修ワークショップ~マシュマロ・チャレンジ~
- レポート2019.08.06Computex/InnoVEX 出展者・通訳として参加してきました。
- レポート2018.06.12Computex 2018 レポート