注意:
この節は 1.2.0 以降のバージョンには関係ありません。 1.2.0 以降、接続は常に持続的なものとなり、 ドライバが自動管理するようになりました。 1.2.x (1.3.x 以降は除く) を使っている場合は、 プーリングに関する詳細な情報は MongoPool を参照ください。
データベースへの接続を新たに確立させるには、非常に時間がかかります。 データベースへ接続の作成回数を最小限にするには、持続的接続を使うことができます。 持続的接続は PHP が保持するので、同じ接続を使って複数のリクエストを送ることができます。
たとえば、この単純なプログラムはデータベースに 1000 回接続します。
<?php
for ($i=0; $i<1000; $i++) {
$m = new MongoClient();
}
?>
実行時間は約 18 秒です。これを、持続的接続を使うように変更してみましょう。
<?php
for ($i=0; $i<1000; $i++) {
$m = new MongoClient("localhost:27017", array("persist" => "x"));
}
?>
実行時間は 0.02 秒未満になりました。データベースへの接続は 1 回だけしか行わないからです。
持続的接続には識別用の文字列 (上の例では "x") が必要で、これを使って接続を識別します。 持続的接続を使うには、ホスト名とポート、持続文字列、そしてユーザー名とパスワード(指定した場合) が既存の持続的接続と一致しなければなりません。 一致しない場合は、この識別情報で新しい接続を作成します。
持続的接続を使うことを強く推奨します。 実運用環境では、やむを得ぬ理由がない限り常に持続的接続を使うべきです。 リレーショナルデータベースにおいて持続的接続を推奨しない理由はいくつかありますが、 その大半は MongoDB には無関係なものです。