MYSQLを使用する予定です。利用可能な接続プール拡張機能はありますか?または、接続の通常の方法は何ですか?これはどこでも使われているものですか...
mysqli_connect("localhost", "xxx", "xxx", "test");
人々は通常のmysql_connect
またはpconnect
..を使用しますか? pconnect
はどの程度優れていますか?また、PConnectに対してどのような設定を行う必要がありますか?
mysql_pconnect()
を使用したことがありますか? mysql_pconnect()
はmysql_connect()
と非常によく似ていますが、2つの大きな違いがあります。
まず、接続時に、関数は最初に、同じホスト、ユーザー名、およびパスワードで既に開いている(永続的な)リンクを見つけようとします。見つかった場合は、新しい接続を開く代わりに、その識別子が返されます。
次に、スクリプトの実行が終了しても、SQLサーバーへの接続は閉じられません。代わりに、リンクは将来の使用のために開いたままになります(mysql_close()
はmysql_pconnect()
によって確立されたリンクを閉じません)。
したがって、このタイプのリンクは「永続的」と呼ばれます
チェックしてください ここ
持続的接続のサポートは、mysqli拡張機能のPHP 5.3で導入されました。サポートはPDOMYSQLとext/mysqlにすでに存在していました。持続的接続の背後にある考え方は、クライアントプロセスとデータベース間の接続です。何度も作成および破棄するのではなく、クライアントプロセスで再利用できます。これにより、未使用の接続がキャッシュされて再利用できるため、必要になるたびに新しい接続を作成するオーバーヘッドが削減されます。
Mysql拡張機能とは異なり、mysqliは持続的接続を開くための別個の機能を提供しません。 持続的接続を開くには、接続時にホスト名の前にp:を追加する必要があります。
ソース: http://www.php.net/manual/en/mysqli.persistconns.php
sample code:
$GLOBALS["mysqli"] = new mysqli('p:localhost', 'username', 'password', 'db_name');
編集:だまされて申し訳ありませんが、他の答えを見ませんでした。
古いmysql拡張機能の代わりにmysqliまたはPDO拡張機能を使用してください。
あなたはmysqli_connect
またはmysqli::__construct
ホスト名の前に「p:」を付けると、持続的接続を使用します
これは古い質問ですが、同じ問題を検討していたので、2セントを追加したいと思いました。 PHP 5.3以降、mysqliは持続的接続をサポートしています。ホスト名の前にp:を追加するだけです。
Apacheを実行している場合、Apache mod_dbdモジュールを介してmysqlとの接続プールを調べてみましたか? MySQLの接続プールをサポートします。 http://httpd.Apache.org/docs/2.2/mod/mod_dbd.html
3つの接続機能があります:
mysql_connect:通常の接続、プーリングなし、ストアドプロシージャを実行できません(SQLのみ)
mysql_pconnect:プールされた接続、ストアドプロシージャを実行できません(SQLのみ)
mysqli_connect:通常の接続、プーリングなし、ストアドプロシージャを実行できます(mysql 5以降が必要)
mysqli_pconnect:存在しません。ストアドプロシージャの処理とプーリングの両方を処理する組み込みの接続関数はありません
私のアドバイス(経験とサーフィンを通して):
ストアドプロシージャが必要な場合は、プーリングを省略してmysqli_connectを使用してください
ストアドプロシージャが必要ない場合は、mysql_pconnectを使用してください
正確な答えではありませんが、PHP Data Objects(PDO) http://php.net/manual/en/book.pdo.php そしてMySQLのPDO http://php.net/manual/en/ref.pdo-mysql.php