将大集导入MySQL

时间:2013-08-08 07:06:56

标签: mysql

我正在尝试将维基百科访问日志(http://dumps.wikimedia.org/other/pagecounts-raw/)导入mysql以供内部使用 目标:绘制日期/网址图

维基百科文件名包含日期和小时,并具有以下结构:
语言网址访问size_of_answer

我目前的数据库结构:

Table urls:
url_id;url_string;language  
Indexes on everything

Table visits:  
visits_id;url_id;day_stamp;visits_count  
Indexes on everything

Table temp:  
visits_id;url_id;url_string;language;visits_count;day_stamp

MySQL引擎:InnoDB

目前的方法:

  1. 我过滤原始日志只对我有意义。过滤文件包含大约250k行,并具有“temp”表的结构。
  2. 使用LOAD DATA INFILE将此文件导入“temp”。
  3. 在“temp”中为现有网址设置url_id(UPDATE ...在url_strings上使用网址加入临时网址)。
  4. 将网址从“temp”插入“urls”,其中temp.url_id = 0
  5. 在“temp”中再次为现有网址设置url_id(UPDATE ...在url_strings上使用网址加入临时网址)。
  6. 在现有访问行的“temp”中设置visits_id(在url_id上访问UPDATE ... JOIN temp)。
  7. 从“temp”插入访问次数,其中visits_id = 0
  8. 更新来自“temp”的访问次数,其中visits_id!= 0
  9. 导入所有这些最多需要5分钟。

    这是更快的方法吗?另一个步骤,另一个DB?

0 个答案:

没有答案