私はクライアントのサイトで作業しており、売上データをどのようにプルダウンするのかをより効率的にしようとしています。私の元々の解決策は、カスタムSQLクエリのスパゲッティが混乱して、なぜあまりにもハッキングされているのではないかと感じました。次に、関連するすべてのセールスレコードをプルダウンしてRubyで処理しようとするラッパークラス(SalesCalculator)を作成しようとしましたが、30,000件以上のレコードについては、パフォーマンスが大幅に低下し、キャッシュさえも潜在的に迷惑な(我々は> 10ページの読み込みを話している)。データの重いサイトの効率を上げるためのアイデア
私も、ちょうど私が私の全体的な目標は、私は一貫性のあるインターフェースを保つことができるように、データと私の相互作用を簡素化することであると思いEAC
のクエリを構築しようとしました。上記と同じ3年間の各年の売上高の
- 総収入
- が、5かそこらの部門 に分かれて:ここで私は一般的に、任意のページに行ってしまう物事のカップルは、 (現在および以前の年のための)部署/従業員の月別
- 総収入
- など
だから私の質問は、あなたたちは、大規模なデータセットと同様のことを行うのでなければならないのどんな提案/例でしょうか?
30kレコードでは、私が知っているDBMS(またはRubyの場合)のパフォーマンスが低下することはありません。私はあなたに何をしているのか、データベースレイアウトの概要と最も遅いクエリのいくつかの例を教えてもらうことをお勧めします。そこで本当に間違っていることが分かります。 – fresskoma
ええ、問題ありません!基本的に、売上請求書レコードには、日付、金額、トン数、従業員ID、顧客ID、製品IDが含まれます。 クエリのようなインターフェイスを構築して、必要なすべてのレコードを取得し、さまざまなサブセット、つまり特定の部門のデータセットの各年の合計売上を減らすことができました。私はこれらのことをSQLで行うことができますが、ロジックをルビに移行してより多くの制御と柔軟性を持たせることが考えられましたが、問題は30,000以上のARオブジェクトの配列が少なくとも15回反復されること(3年ごとに一度、部署ごとに)。 –
ここに、あなたにアイデアを与えるためのページのスクリーンショットがあります。私は実際の販売数を削除しましたが、基本的に箱に記入しました。 http://s3.noahhendrix.com/system/1296111185_Screen%20shot%202011-01-27%20at%2012.51.48%20AM.png –