0

mysqlajaxを使用して、テーブルから10秒ごとにランダムな行を選択しています。

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

最後にUNIX時間を選択して更新クエリをデータベースに送信することもできますが、サーバーの過負荷を防ぎたいので、パフォーマンスを気にします...したがって、このアイデアはあまり良くありません。

パフォーマンスに関してもう少し経験を積むことができるので、上記の問題に関してあなたからいくつかのアイデアを得たいと思います。よろしくお願いします。

//codeigniterタグを配置しました。これは、この問題にとって重要である可能性があるためです。

4

1 に答える 1

1

最後に選択したレコードIDをサーバー側のユーザーセッションに保存するのが最善の解決策だと思います。このようにして、そのユーザーに対して最後に選択されたIDを取得し、それをクエリから除外できます。

最後に選択したIDを保持する追加のデータベーステーブルを作成する場合は、サイトに複数の同時訪問者がいる可能性があるため、訪問者ごとに最後に選択したIDを保存する必要があることに注意してください。一意であること。

各訪問者が同時に同じIDを表示する必要がある場合は、前の段落のアイデアが解決策になる可能性があります。または、クエリが必要なテーブルにブールフィールドを追加して、現在のレコードに対してtrueに設定し、falseに設定することもできます。他のすべてのもののために。クエリでタイムスタンプを使用して、10秒間隔ごとに最後のレコードとは異なる新しい一意のレコードを1つだけ返すようにする必要があります。

于 2012-04-08T11:15:10.383 に答える