2

mod_dbd を使用して、PHP アプリケーションの接続プールを実装したいと考えています。Apache の mod_dbd モジュールを定義でき、それが開いている接続を確認できますが、php コードでそれらの接続を「フック」することはできません。mysql_pconnect と同様に、パラメーターを使用して、または使用せずに mysql_connect を試していました。

アドバイスを歓迎します。

アリエル

4

2 に答える 2

1

mod_dbd の接続プール機能を利用するには、スレッド化された MPM を実行して、複数のスレッドがプール内の接続を共有できるようにする必要があります。残念ながら、PHP はスレッドセーフではなく、スレッド化された MPM をサポートしないと思います。

mod_dbd をフォーク前の MPM (スレッド化されておらず、PHP に推奨されます) で使用すると、mod_dbd は単一の永続的なデータベース接続を作成しますが、mod_dbd を使用しない PHP でのデータベース接続と比較して、大きな利点はありません。

于 2011-03-30T15:34:07.233 に答える
0

http://bugs.php.net/bug.php?id=51865&edit=1

mysqlndが実装されているように拡張機能としてこれを実装し、他の人が抽象化コードから継承できるようにする必要があります。そのようなことがPECLで発生する可能性は十分にありますが、コアPHPの場合、私たちの誰もがそれに取り組む可能性はほとんどありません。

また、Apacheで接続プールを許可すると同時に、拡張機能でIISなどのApacheベースではない別のWebサーバーを使用できるようにするには、多くの変更が必要であることを覚えておく必要があります。そうしないと、拡張機能が制限されすぎてしまいます。

私がググったものから引用するだけ

于 2010-09-21T18:00:31.923 に答える