私は3つのオブジェクト - Brands
,Categories
およびProducts
を持つシステムを持っています。 ORMとしてNhibernateを使用しています。ブランドをロードする - >カテゴリー - >製品hiearchy効率的
商品は1つのbrand
と複数のCategories
に割り当てられています。 Googleが構築しているeコマースのウェブサイトでは、左側にブランドメニューを表示する必要があります。各ブランドについて、そのブランドの製品のみを持つカテゴリーを表示することです。
たとえば、キャンプ、ハイキング、クライミング、3つのブランドA、B、Cの3つのカテゴリがあるとします。ブランドAに「クライミング」カテゴリの商品がない場合、そのカテゴリは表示されません。
この問題を効率的に処理する方法が問題です。各ブランドについては、各カテゴリを通過し、そのカテゴリの下に現在のブランドの商品が少なくとも1つ存在するかどうかを確認する必要があります。 200のカテゴリーと20のブランドでは、最悪のケースで約2000件のデータベース呼び出しが発生します。
他のオプションは、すべての製品をメモリに読み込むことですが、多くの製品(20,000 +)がある場合は、この方法も遅くなります。
もっと速くロードできるように、私ができるアイデアや最適化はありますか?
あなたはどのデータベースを使用していますか? – Tridus