2011-12-21 7 views
0

私はApp Storeのすべてのアプリを表示しているウェブサイトで作業しています。私はEPF Importerを介してEPFデータフィードによってAppStoreデータを取得しています。そのデータベースでは、各店舗ごとに各アプリの価格を取得します。価格引き下げを計算するアプリまたはアプリが無料になる - App Store

application_price 

The retail price of an application. 

Name   Key Description 

export_date   The date this application was exported, in milliseconds since the UNIX Epoch. 
application_id Y Foreign key to the application table. 
retail_price  Retail price of the application, or null if the application is not available. 
currency_code  The ISO3A currency code. 
storefront_id Y Foreign key to the storefront table. 

これは私が今取得表である私の問題は、私は、私はの低価格化を計算することができますどのようにどのような方法を取得しておりませんということです。テーブルの構造に似ているデータのセット内の行のダースがあります。アプリとこの特定のデータセットからの新しい無料アプリです。どのように計算することができますか? アイデアや答えは高く評価されます。

以前のデータと現在のデータを保存しようとしましたが、それをマッチさせようとしました。問題は、テーブル自体が大きすぎると比較して、私は余裕がない時間以上のクエリの実行時間を作るJOIN操作を引き起こしている。約60、000があり、テーブル内の000行が

答えて

2

これらのフィールドでは、価格低下または新しいアプリケーションを直接決定することはできません。あなたは自分のデータベースにこれらを挿入し、そこからの違いを判断する必要があります。

新しいアプリケーションを特定するには、 "first_seen"という列を追加してデータベースに照会し、first_seen列がなくなったすべてのオブジェクトを表示することができますそれから1日。価格を計算するには

を使用すると、現在のインポートのretail_price、と以前のインポートの間の差を計算する必要があります落ちます。あなたの質問を編集したので


は、私の編集した答えは:あなたはストレージ/パフォーマンスの問題を抱えているよう

に思える、とあなたが達成したいものを知っています。これを解決するには、測定とデバッグを開始する必要があります。データセットを使用すると、正しいインデックスがあることを確認する必要があります。あなたの質問をプロファイリングすることは、彼らがそうしているかどうかを見出すのに役立ちます

そしておそらく、ご使用の環境には、「一日一回書き込み」、および「何回分」を読んでいます。 (私はあなたがウェブサイトを作っていると思っています)。したがって、Webサイトに表示するのではなく、インポート時の違い(価格低下や新しいアプリケーション)を処理することで、フロントエンドのスピードアップを図ることができます。

あなたはまだこの問題を解決することができない場合、私はなど、クエリ、あなたはあなたのDBMSを詳述し、より具体的な質問を開いて提案するので、実際のデータベース管理者はあなたを助けることができるようになります。 6千万の行がたくさんありますが、正しいインデックスがあれば、通常のデータベースシステムには本当の問題はありません。

+0

をありがとう。私の編集を参照してください – Astha

+0

私の編集も参照してください;-) –

1

は、前の日にダウンロードしたものとテーブルを比較し、相違点に注意してください。

追加: 現代的なPC上では、店舗ID番号と以前の価格の並べ替えられた配列をメモリに保存できるだけで、データが到着するよりも高速に配列検索を実行できるはずですネットワークフィードから。発見された相違点をマークし、後処理でDBとの間でそれらを再確認してください。

+0

返信ありがとうございます。返信のために私の編集 – Astha

0

実際に私はまた、これらのデータを再生しよう、と私はアップルからのデータのあなたのベースのための最善の方法だと思います。

データには、完全型と増分型(毎日更新されるデータ)の2種類があります。したがって、インクリメンタルからの新しいデータ(フルではない)では、更新されたレコードのみを比較し、別のテーブルに挿入して価格設定が変更されたことを確認できます。

価格が変更された毎日更新されるレコード(アプリ、歌、ビデオなど)のリストがあるので、あなたが作成した新しいテーブルからデータを取得してください。

乾杯

関連する問題