PHP が提供するような、MySQL C API との永続的な接続を取得することは可能ですか? もしそうなら、どのように?
2 に答える
MySQL C APIは、永続的な接続機能を必要としないため、それを備えていません。それを介して作成するすべての接続は永続的です。つまり、プログラムを実行している限り、それらをアクティブに閉じるか、サーバーがそれらを削除しない限り、それらは存続します。
PHPが持続的接続を必要とする唯一の理由は、それがHTTPの動作方法のアーティファクトであるということです。PHPは元々CGIプログラムであったため、WebサーバーはDB接続を含め、HTTPリクエストごとにすべてを再起動していました。これには非常に時間がかかるため、彼らはmod_phpを作成しました。これは、現在PHPを使用しているほとんどの人が使用しています。HTTPのステートレスな性質では、リクエストごとにPHPスクリプトを再起動する必要がありますが、mod_phpはApacheインスタンスにロードされたままなので、MySQL DB接続を開いたままにして、それを必要とする次のPHPスクリプトで使用できます。
これらすべてが疑問を投げかけています。なぜ永続的なDB接続が必要だと思いますか?必要になるたびにCプログラムを再起動していますか?もしそうなら、それを修正することは、おそらくあなたが「欠けている」CAPI機能を探す代わりにあなたがしなければならないことです。たとえば、CでWebアプリケーションを作成している場合、スタンドアロンのCGI PHPがmod_phpになったのと同じように、Apacheモジュールとして再作成できます。
ただし、常に覚えておいてください。
「プログラム最適化の最初のルール:実行しないでください。プログラム最適化の2番目のルール(専門家のみ!):まだ実行しないでください。」
—マイケル・A・ジャクソン
プログラムのベンチマークとプロファイルを作成する前に最適化するのは愚かです。あなたのデザインと測定値を見せてから、何ができるか尋ねてください。最初に技術的な修正を求めに行かないでください。設計修正はもっと役立つかもしれません。
確かに -- 接続を閉じないことで。PHP の「永続的な接続」が行うことは、接続を開いたままにし、後続のスクリプトの実行に再利用することだけです。