0

内部使用のために、ウィキペディアのアクセス ログ ( http://dumps.wikimedia.org/other/pagecounts-raw/ ) を mysqlにインポートしようとしています。
目標: 日/URL グラフを描画する

ウィキペディアのファイル名には日付と時間が含まれており、次の構造になっています:
language url visits size_of_answer

私の現在のDB構造:

テーブルの URL:
url_id;url_string;言語  
すべてのインデックス

テーブル訪問:  
visits_id;url_id;day_stamp;visits_count  
すべてのインデックス

テーブル温度:  
visits_id;url_id;url_string;language;visits_count;day_stamp

MySQL エンジン:InnoDB

現在の方法:

  1. 生ログをフィルタリングして、自分にとって興味深いものだけを取得します。フィルタリングされたファイルには約 25 万行が含まれ、「temp」テーブルの構造を持っています。
  2. LOAD DATA INFILE を使用して、このファイルを「temp」にインポートします。
  3. 既存の URL の「temp」に url_id を設定します (UPDATE... url_strings の URL で一時を結合します)。
  4. 「temp」から「urls」に URL を挿入します。ここで、temp.url_id=0
  5. 既存の URL の「temp」に url_id を再度設定します (UPDATE... url_strings の URL で一時を結合)。
  6. 既存の訪問行の「temp」に visits_id を設定します (UPDATE... url_id の訪問で一時を結合します)。
  7. visits_id=0 の「temp」からの訪問を挿入
  8. visits_id!=0 の「temp」から訪問を更新

このすべてのインポートには最大 5 分かかります。

ここでそれをより速く行う方法はありますか?別のステップ、別の DB?

4

0 に答える 0