この問題は、しばらくの間、私にとって非常に頭の体操でした。私がかなり多く書いている場合はお詫びします。私がすでに試したことなどを明確にしたいだけです.
複雑さはあまり関係ないので、問題の考え方をできるだけ簡単に説明します。サイトには、一度に最大 80 ~ 90 人のユーザーがいる場合があります。それらはすべて、result.php と呼ぶ同じページにアクセスする可能性があります。ただし、ID の get 変数 (result.php?ID=456) を介して異なる結果にアクセスします。一度に 3 人または 4 人未満のユーザーが個々のレコードに存在する可能性が高く、10000 を超えるレコードがあります。
20 ~ 25 秒以内のエラー マージン (これは非常に重要です) で、そのページの特定の ID に誰がいるかを知り、それに応じてページを更新する必要があります。ページに表示されなくなったら、できるだけ早く名前を削除します。
現在、私はphpファイルを呼び出すjQueryスクリプトを使用しており、この特定のIDにアクセスしている「現在アクセス中」のユーザー名のデータベースから読み取り、アクセスした日付が過去25秒以内である場合にのみ. このファイルは、テーブルを整理するために、5 分以上経過したすべてのエントリも削除します。
これは 20 人または 30 人のユーザーでは問題ありませんでしたが、負荷が 2 倍以上になった今、これが特に遅い方法であることに気付きました。
他にどのような方法がありますか? 誰かが同様の状況で経験したことがありますか?
現在使用しているものはすべて PHP でコーディングされており、小さな jQuery が含まれています。問題があれば、ホスティング会社がオフサイトで管理するサーバーで実行しています。
私はコメットまたはコメット サーバーと呼ばれるものに出くわしました。