2

私はまだ実装していないアイデアを持っています。なぜなら、間違ったツリーを吠えているのではないかと心配しているからです...主に、トピックに関するグーグル検索で返される結果が非常に少ないためです。

基本的に、時間のかかるサブクエリがあるため、遅い SQL クエリがいくつかあります。たとえば、「10 歳から 15 歳までの男の子が乗っている赤い自転車をすべて数えてください」といったようなことを行うかもしれません。これはすべての自転車をスロッシングするためコストがかかりますが、最終結果は 1 つの数値になります。私の場合、その数値が 100% 最新である必要はありません。

この種の問題に対する究極の解決策は、OLAP ベースのエンジンを適用してこれらの順列を事前にキャッシュすることです。ただし、私の場合、大量のメトリクスに基づいてデータを細かく分割しようとしているわけではなく、別のプロセス/データストアを実行してアーキテクチャを複雑にする必要はありません。

だから...私の考えは、基本的にデータベース内のこれらのサブクエリをメモ化することでした。「BicycleStatistics」というテーブルがあり、上記のサブクエリの出力を入力と出力の名前と値のペアとして保存する場合があります。

例の名前: "c_red_g_male_a_10-15" 値: 235

また、クエリが実行されるときに、それらの値をそのテーブルにメモするメカニズムがあります。

誰かがこの状況にあり、同様のことを試みましたか? このようなソリューションが「DB に大量の RAM を投入し、データベースに処理させる」よりも価値があると考える理由は、(A) 私のデータベースは、便利に投入できる RAM の量よりも大きく、( B) データベースは、これらの統計の正確な数値を取得することを保証します。上記の私の大きな利点は、数値が 1 日か 2 日遅れても問題ないことです。

ご意見やご感想をお寄せいただきありがとうございます。

トム

4

1 に答える 1

2

マテリアライズド ビューは、DBMS がマテリアライズド ビューをサポートしている場合、この要件を達成する方法の 1 つです。

于 2010-02-18T13:30:18.417 に答える