0

私は現在、highchartとhighstockを使用した統計とグラフを備えた小さな管理プラットフォームを構築しています。現在、グラフはロードされるたびに常にデータベースからデータをフェッチしています。ただし、データは将来大幅に増加するため、これは非常に非効率的であり、データベースの速度が低下します。私の質問は、データを保存または事前計算して、グラフがロードされるたびにデータベースからデータをフェッチする必要がないようにするための最善のアプローチは何かということです。

4

1 に答える 1

2

データの量が非常に多くなり、リアルタイムで表示する方法を犠牲にすることができる場合は、別のデータベーステーブルのグラフのデータを計算し、そこからグラフを表示するのが最善の方法です。バックグラウンドプロセスを設定して(whenまたはdelayed_jobなどを使用して)、前処理されたデータテーブルを新しい値で定期的に更新できます。

もう1つのオプションは、任意の方法(組み込みのRailsキャッシュを使用、カスタムキャッシュの作成など)でグラフの応答をキャッシュして、DBヒットを減らして同じデータを多数のユーザーに配信することです。

ただし、一般に、統計テーブルには非常に「スパース」なデータが含まれているため、前処理が勝者のようです。このデータは、チャートに表示するためにはるかに小さなセットに事前計算できますが、必要に応じてフィルタリング/並べ替えを適用するオプションがあります。

EDITは、データベース側に最適化の余地があるかもしれないと言うのを忘れていました。たとえば、ユーザーがデータを表示できる期間を制限できる場合(=使用ごとにクエリされる量を制限する)、適切なインデックス作成とDBセットアップにより、中間者攻撃やキャッシングなどの中間者攻撃なしで実質的なパフォーマンスを実現できます。事前計算。

于 2012-11-09T15:44:41.440 に答える