ホームページ  >  記事  >  バックエンド開発  >  PHP によるデータベースへのアクセスに関連する問題のタイトルは長くする必要があります。

PHP によるデータベースへのアクセスに関連する問題のタイトルは長くする必要があります。

WBOY
WBOYオリジナル
2016-06-13 12:15:32840ブラウズ

PHP データベース アクセスに関する質問のタイトルは長くする必要があります。 。 。 。 。
いくつかの質問に悩んでいます
まず、ブラウザがサーバーにリクエストを送信した場合、サーバーは対応するリクエストを処理する新しいスレッドを作成してブラウザに返すのでしょうか?
2 番目、
次のコードにアクセスすると

<br /><?php<br />$con = mysql_connect("localhost","peter","abc123");<br />if (!$con) die('Could not connect: ' . mysql_error());<br /> $strsql="SELECT * FROM `gbook`";<br /> // 执行sql查询<br />$result=mysql_db_query("database", $strsql, $con);<br />// 获取查询结果<br /> $row=mysql_fetch_row($result);<br />?><br />

サーバーはこのコードを実行する新しいスレッドを作成し、データベースのリンクとクエリを実行します
次に、If Nユーザーが 1 分以内にデータベースにアクセスすると、その 1 分以内に N 個のスレッドが作成され、データベースに N 回リンクされますか?
ウィンドウの下で、mysql_connect 関数は .dll ダイナミック リンク ライブラリを呼び出す必要があります。この場合、各ユーザーはデータベースにアクセスするたびに再接続する必要があります。これは効率的ですか?これらのスレッドは依然としてデータベース リンクを共有しています。 。 。
私は初心者です。批判しないでください。


-----解決策のアイデア----------- -- --------
は新しいプロセスです...
------ソリューションのアイデア------------- --- ------
ユーザーが Web ページにアクセスすると、mysql は接続を作成します。
------ソリューションのアイデア----------------------
1. 各 http セッションは 1 つの独立したセッションを占有します。セッションの独立性を確保するためにプロセス (スレッド) を作成します
2. ロードと接続の違いに注意してください。ダイナミック リンク ライブラリは 1 回だけロードされ、それを使用する各プログラムはそれへの接続を生成します。
3. 複数のプロセスが接続を共有することを想像すると、それは不可能ではありません。ただ、各受信 (スレッド) プロセス間のスケジューリングは非常に複雑になります。データ フローが傲慢でないことを確認するために、どのように識別する予定ですか?
------ソリューションのアイデア----------------------
従来の Web サーバーは、確かに 1 回のリクエストで済みます。スレッドは処理後に解放されます
HTTP プロトコルの設計の目的は、Web の軽量かつ同時実行性のニーズを解決することです
nginx はスレッドをオープンしていないようです。よりパフォーマンスの高いソリューションがあります。ご興味がございましたら、Baidu でダウンロードしてください
データベース接続もスレッドに依存しません
しかし、現在「プール」はメモリ プールやスレッド プールなど、多くの場所で使用されています
追加の機能を意味しますサーバーとデータベース間のサービス層。事前にデータベースに N 個の接続が適用されており、ハンドルを保存して保持します。サーバーがデータベースにアクセスする場合は、すでに接続されているハンドルを直接使用し、使用後に元に戻します。ただし解放しないでください

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。