内部使用のために、ウィキペディアのアクセス ログ ( 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
現在の方法:
- 生ログをフィルタリングして、自分にとって興味深いものだけを取得します。フィルタリングされたファイルには約 25 万行が含まれ、「temp」テーブルの構造を持っています。
- LOAD DATA INFILE を使用して、このファイルを「temp」にインポートします。
- 既存の URL の「temp」に url_id を設定します (UPDATE... url_strings の URL で一時を結合します)。
- 「temp」から「urls」に URL を挿入します。ここで、temp.url_id=0
- 既存の URL の「temp」に url_id を再度設定します (UPDATE... url_strings の URL で一時を結合)。
- 既存の訪問行の「temp」に visits_id を設定します (UPDATE... url_id の訪問で一時を結合します)。
- visits_id=0 の「temp」からの訪問を挿入
- visits_id!=0 の「temp」から訪問を更新
このすべてのインポートには最大 5 分かかります。
ここでそれをより速く行う方法はありますか?別のステップ、別の DB?