0

reddit のようなウェブサイトをプログラミングしています。

ユーザーは、選択したカテゴリからアイテムを表示できます。

このために、彼が購読しているカテゴリとアイテムのJOINをクエリしています。

ハードコアクエリ

最初の解決策: ディスク上のデータを「categories_1-2-4-7-10.json」に保存し、同じカテゴリを閲覧しているユーザーに提供します。

短所:ディスク上のスペースが必要で、負荷が高い

私は新しい解決策を考えています:ビュー。しかし、それらがどのように機能するかはよくわかりません。サーバーに負荷がかかるほど頻繁に再生成されますか?

ビューを使用すると、既に結合されているデータをクエリできます

さらに:私はフロントページのアイテムのビューのみを作成しています。後のページは頻繁にアクセスされないため、最適化する必要はありません。

4

1 に答える 1

1

物をディスクに保存してからサイトにロードするのは悪い考えです。ディスク操作は、メモリ操作に比べてめちゃくちゃ遅いです。

JSONドキュメントは引き続き保存できますが、キャッシュレイヤーに保存することを検討してください。

最近の新しい注目度であるRedis(http://redis.io/)やCouchbase(http://www.couchbase.com/)のようなもの

すべてをメモリに保存すると、サイトがはるかに高速になります。

ビューを再生成する頻度に関しては...有効期限を与えることをお勧めします。それが一般的なキャッシングでどのように機能するかについて読んでください。カテゴリビューをキャッシュに1分間存在するように設定します。1分後、アイテムはメモリを離れ、データベースクエリを実行して、新しいバージョンを元に戻します。すすぎ、繰り返します。

于 2013-02-01T17:40:34.510 に答える