MySQL DB には非常に大きなテーブル (3 つのテーブル、それぞれ 2 ~ 5 GB) はほとんどありません。ルート、スケジュール、容量、場所、価格ルールなどのエンティティを組み合わせる物流アプリケーションを実行しています。これらの巨大なテーブルには、言及されたエンティティからの「結合」データが含まれています。
実行中に JOINS を実行するとパフォーマンスが完全に低下するため、これらのテーブルが必要です。インデックス、キャッシング メカニズム、効率的な準備済みステートメント、適切なトランザクション管理セットアップがありますが、パフォーマンスは十分ではありません (~数千の顧客、~数百または VIP の顧客)。
私たちの顧客は、接続、スケジュール、価格の検索など、ほとんど99% の読み取り専用操作を行っています。その後、 1 ~ 2% の UPDATE/INSERT 操作が行われることがあります。たとえば、旅行や定員の予約などです。
私たちの考えは、SQL を使用しない DB (おそらく MongoDB) を 2 番目のデータベースとして使用し、事前に生成されたすべての読み取り専用データをいくつかのキー値またはツリー構造に配置することです。パフォーマンスが大幅に向上すると信じていますが、このソリューションの注意点は何ですか? そのような仕事について個人的な経験はありますか?
高速プロトタイプを作成する予定ですが、実際に NoSQL を実際に使用した経験はありません。