2012-04-07 8 views
0

私はmysqlテーブルからajaxを使用して10秒ごとにランダムな行を選んでいます。ajaxを使用してデータベースからデータをピッキングし、最後のピッキングを保存する

問題は、同じ行を2回(1つずつ)選択しないようにすることです。私は最後に選んだ行IDを保持するためにセッションを使うことができますが、それをサーバー側にします。

私は最終的にunix時間を選択してデータベースに更新クエリを送信することもできますが、サーバーのオーバーロードを防ぎたいと思います。パフォーマンスについて気にしています。

パフォーマンスに関してもう少し経験を積んだことがありますので、私は上記の問題に関してあなたからいくつかのアイデアを得たいと思います。皆さん、事前にありがとうございます。

// codeigniterタグを配置しました。この問題は、この問題で重要なことがあるためです。

+0

ページの読み込みから、10秒ごとにランダムな行が選択され、ユーザーがサイトを閉じるまで、ajaxリクエストが繰り返されます。 – Cyclone

答えて

1

私は、サーバー側のユーザーセッションに最後に選択したレコードIDを格納するのが最善の解決策だと思います。この方法で、そのユーザーの最後に選択されたIDを取得し、照会から除外することができます。

最後に選択したIDを持つ別のデータベーステーブルを作成する予定がある場合は、サイトに同時に複数の訪問者が存在する可能性があるので、各訪問者に最後に選択したIDを保存する必要がありますIDは一意であってはいけません。

各訪問者が同時に同じIDを参照する必要がある場合は、前の段落の考え方が考えられる可能性があります。また、照会する必要があるブール値フィールドをテーブルに追加し、現在のレコードであり、他のすべてのレコードではfalseです。クエリでタイムスタンプを使用して、10秒間隔ごとに最後のものとは異なる1つの新しい一意のレコードのみを返すようにする必要があります。

関連する問題