2

1 ~ 30 人のユーザーが 1 日を通して常に更新する進捗シートを作成しました。PHP と jQuery によって制御され、すべてのデータは mySql データベースに保存されます。

検索とフィルターで再クエリを実行するため、ライブサーバーでは非常に遅くなります。最新の更新のみが必要ですが、常にフィルター処理して更新する必要はないため、結果を保存するのに最適な場所はどこにあるのだろうかと考えていました。

その種のデータをセッションに保存しても大丈夫ですか、または変更/検索のたびに、またはページが変更されたときに完全なクエリを回避するために、他に誰が保存できますか?

4

1 に答える 1

0

私はmemcachedを調べましたが、最終的に再設計しました。

「LIKE '%Darren%'」SQL クエリを使用する代わりに、jQuery を使用して、一致するデータ属性で hide() と show() を使用してレコードをフィルター処理しました。これにより、サーバーではなくユーザーの端末に負荷がかかります (メモリ使用量を低く抑えるために、アニメーションを最小限に抑えるようにしてください)。

次に、ユーザーの端末の最終更新のタイムスタンプを HTML に保存し、「SELECT id FROW progress WHERE updated > '2014-02-20 16:54:30' LIMIT 1」クエリを定期的に実行します。1 件のレコードが戻ってきたら、Ajax を使用して完全に更新し、必要な領域を新しい HTML で更新します。

このようにすることで、はるかに迅速かつスムーズになりました。

これがどのように役立つか、さらに情報が必要な場合はお知らせください。

于 2014-02-20T17:02:12.333 に答える