sql >> データベース >  >> RDS >> Mysql

mysql_connect VS mysql_pconnect

    MySQLでは永続的な接続は不要です。他のデータベース(Oracleなど)では、接続の確立には費用と時間がかかるため、接続を再利用できれば大きなメリットがあります。しかし、これらのブランドのデータベースは接続プールを提供しており、問題をより適切に解決します。

    MySQLデータベースへの接続は、他のブランドに比べて迅速であるため、永続的な接続を使用すると、他のブランドのデータベースよりもMySQLのメリットが比例して少なくなります。

    永続的な接続にも欠点があります。データベースサーバーは、接続が必要かどうかに関係なく、各接続にリソースを割り当てます。したがって、接続がアイドル状態の場合、目的のない多くの無駄なリソースが表示されます。 10,000のアイドル接続に到達するかどうかはわかりませんが、数百の接続でもコストがかかります。

    接続には状態があり、PHPリクエストが以前に別のPHPリクエストによって使用されたセッションから情報を「継承」することは不適切です。たとえば、一時テーブルとユーザー変数は通常、接続が閉じるときにクリーンアップされますが、永続的な接続を使用する場合はクリーンアップされません。同様に、文字セットや照合などのセッションベースの設定。また、LAST_INSERT_ID() セッション中に最後に生成されたIDを報告します-それが以前のPHPリクエストの間にあったとしても。

    少なくともMySQLの場合、永続的な接続の欠点はおそらくそれらの利点を上回ります。また、高いスケーラビリティを実現するためのより優れた手法は他にもあります。

    2014年3月の更新:

    MySQL接続速度は、他のブランドのRDBMSと比較して常に低速でしたが、さらに向上しています。

    http://mysqlserverteam.com/improving-connectdisconnect-performance/ を参照してください。

    詳細と速度の比較については、ブログをお読みください。



    1. PostgreSQLの増分バックアップとポイントインタイムリカバリ

    2. Visual C#2008でのtnsnames.oraの解析

    3. MS SQL ON DELETE CASCADE同じテーブルを指す複数の外部キー?

    4. mysqlを使用してローカルホストデータベースを作成するにはどうすればよいですか?