8

大規模なpostgresコレクションに基づくページのページ生成を高速化するために、クエリ結果をmemcacheにキャッシュします。ただし、非常に大きい、またはほとんどアクセスされない不変のコレクションの場合、postgresでサーバー側カーソルを保存することが実行可能な代替キャッシュ戦略になるかどうか疑問に思います。

コレクションの途中でページを提供した後、「次へ」および「前へ」のリンクは、コレクション内の他の場所でのランダムクエリよりもはるかに使用される可能性が高いという考え方です。クエリの(一見避けられない)大きな起動コストを回避するために、カーソルを「WITHHOLD」の近くに置くことはできますか?

サーバーのリソース消費について疑問に思います。コレクションが不変である場合、カーソルを保存するのにそれほど多くのリソースは必要ありませんが、この点でpostgresがどのように最適化されているのでしょうか。その他のドキュメントへのリンクをいただければ幸いです。

4

2 に答える 2

3

これに対する良い答えは以前に作成されましたWebでPostgreSQLを使用して連続リストを取得するための最良の方法

質問は似ています。基本的に、PKのリストをページ付けトークンと有効期限とともにサーバーに保存します。

于 2012-12-17T16:04:39.990 に答える
3

あなたは多くの問題にぶつかるでしょう。

  • 同じユーザーが同じSQL接続を取得するようにする必要があります
  • クリーンアップ戦略を作成する必要があります
  • カーソルはバキューム操作を保持します。
  • カーソルをクリアしないように接続プールを説得する必要があります
  • おそらく私が言及していない他の問題。

要するに:それをしないでください。次/前のページをバックグラウンドで事前計算し、memcachedに保存するのはどうですか?

于 2012-12-13T20:00:32.650 に答える