レポート データを同じトランザクション データベースにキャッシュするか、データ ウェアハウスを使用するか
P粉511749537
P粉511749537 2024-02-26 19:20:23
0
1
288

弊社では、各テナントが独自の MySQL データベースを持つ SaaS ソリューションを採用しています。現在、この SaaS システムのダッシュボードを設計しているのですが、それにはいくつかの分析グラフが必要です。グラフに必要なデータを取得するには、データベースから各テナントのトランザクション データをリアルタイムでクエリします。データ量は今のところそれほど大きくないため、パフォーマンスを低下させることなく更新されたグラフを取得できます。しかし、データ量は今後も増大していくため、分析データと取引データを企業ごとに分離し、チャートの分析データをバックグラウンドで取得して保存・キャッシュし、定期的に更新することにしました。私の質問は:

  • データ ウェアハウジングとデータ モデリングを最初から含める必要があるのか​​、それとも API で生成されたグラフの分析データを新しいテーブルの JSON 列にキャッシュするだけなのかを決定する前に考慮すべき良い質問や要素は何ですか?テナントの MYSQL データベース内。

P粉511749537
P粉511749537

全員に返信(1)
P粉759451255

「ファクト」テーブルの何百万行も調べる代わりに、概要テーブルを構築して管理し、そこからデータを取得します。 10 倍速く実行される可能性があります。

テーブルが追加されるためコードの変更が必要ですが、それだけの価値はあるかもしれません。

サマリーテーブル

言い換えれば、データセットが X より大きくなる場合、要約テーブルが最適なソリューションになります。キャッシングは役に立ちません。ハードウェアが十分ではありません。 JSON は邪魔になるだけです。

1 年分のデータ ポイント (1 秒あたり 1 つ) に基づいて 1 年分のグラフを構築するのは時間がかかり、無駄がかかります。毎日の小計に基づいて年間グラフを作成する方がはるかに合理的です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!