0

ユーザーがいくつかの記事を好きになるためのウェブサイトを作っています。いいねボタンがクリックされるたびに、XMLHttpRequest をサーバーに送信して、記事 ID とユーザー ID のデータを取得するとともに、like_clicked.php というファイルを実行します。このファイルは記事 ID とユーザー ID を受け取り、SQL データベースを更新し、ユーザーに関連する xml ファイルにノードを追加します。大量利用のために何かをするのはこれが初めてです。

like_clicked.php ファイルを呼び出すユーザーが多すぎると、サーバーの負荷が心配です。この方法でよろしければ教えてください。

上記の方法が失敗した場合の代替案も考えています。単一のiノードの負荷を最小限に抑えるために、多くのlike_clickedファイル(つまり、like_clicked1.php、like_clicked2.php ...)を作成することを考えています。次の like_clicked ファイルを呼び出した方がよいことを検出する方法はありますか。ここでは、特定のファイルに対する単位時間あたりの呼び出し数を検出する必要があります。これをどのように処理しますか?

前もって感謝します。

4

3 に答える 3

0

コードを複製することは、おそらくあなたが試すことができる最悪のことです:

  • あなたはメンテナンスの悪夢を自分で作成します。
  • メモリ、ファイル システム、FastCGI、PHP バイトコード キャッシュ (ある場合)...

キャッシュの概念が存在しなくても、ディスクを回転させたり回転させたりして、別の場所から読み取ることができます ;-)

于 2012-12-13T11:19:21.023 に答える
0

同じことをするために複数のファイルを持つことは解決策ではなく、別の回答ですでに述べたように、維持するのはメンテナンスの悪夢です。

プログラミングでは、最初にコードを機能させてから、アプリケーションの実行方法に関する実際の結果を確認できるようになってから、後で最適化について心配します。あなたのlike_click.phpページへのアドバイス:できる限り少なくしてください。

後で速度が低下していることに気付いた場合は、Web サイトを複数のサーバーにクラスター化して、さまざまなハードウェアやネットワークに負荷を分散する方法を調査する必要があります。これは、大規模な Web サイトでは非常に一般的です。

于 2012-12-13T11:39:52.013 に答える
0

これらのファイルを1つのサーバーに配置すると、違いはありません。そして、私が見る限り、これらのファイルには重い計算がないはずです。遅いと思われる場合は、データベース要求を改善できるかどうかを確認してください。本当に多くのユーザーがいる場合は、少数のサーバーと、異なるサーバーを呼び出すいくつかのロード バランサーを配置する必要があります。別の名前でファイルを作成してもまったく意味がありません。

同じファイルまたは関数に対して複数の呼び出しが行われる場合、それらすべてを 1 つずつ処理するには時間がかかります。

これは、同じセッションについて話さない限り意味がありません (セッションがデフォルトの PHP セッションである場合)。セッションが異なる場合 (読み取り - ユーザーが異なる場合)、リクエストを 1 つずつ実行することはありません。PHP は、同じ PHP ファイルへの同時リクエストを簡単に処理できます。

于 2012-12-13T11:07:14.297 に答える