在MYSQL中插入7000万次重组

时间:2015-07-01 17:03:20

标签: php mysql database

我在文件中有70 Million个记录,我必须读取所有记录并将其插入MYSQL数据库。我需要大约2 days来插入所有数据,问题是现在我必须在将它们添加到数据库之前添加一些条件。但是当我添加条件时,需要更多天才能完成。此过程已完成every week。因此,如果在7天内每周阅读和排序数据需要4天,那么将不会使用它。

是否有任何快速的原因,以便花费更少的时间来阅读数据。

当前文件大小:500MB

主要条件是,当我读取数据并且不满足要求时,那个数据存储在另一个表中。

I have an other option as well for this.如果不这样做的话。我必须在插入后在前端显示数据。让我们假设没有快速的方法来最小化时间。所以在插入所有数据之后,我必须在每页front-end100条记录上显示这些数据,所以我是否有任何方式在分页中表明它只会显示100条记录要求和下一个100肉类要求。

假设我读了100记录,而在100中只有80条记录符合我的要求。因此,第一页必须提取20更多记录,这符合我的要求。

以下是数据的示例以及它如何显示工作

master_account_number,sub_account_number,current_balance,first_name,last_name,city,state,zip,client_id

01-962040041,01-000050003,11.25,IRENE,AULTMAN,MICHELLVILLE,MD,20721,000969

我需要每行都有这种格式。如果任何field is empty它将被视为bad data并存储在其他表中。或者,如果数据的格式不匹配,那么它也被视为bad data。如果余额为zero,那么还有不良数据,以及更多条件。

我正在使用

Codeigniter 
IIS 7 Server
MYSQL

将所有数据存储为字符串

我使用此查询将数据加载到DB

LOAD DATA INFILE 'C:\\inetpub\\wwwroot\\www.suburbancredit.com\\csv\\atest.csv'
INTO TABLE accounts
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n'
IGNORE 1 LINES 
(`accountNumber`, `caseNumber`, `current_balance`, `first_name`, `last_name` , `city`, `state`, `zip`, `client_id`)

0 个答案:

没有答案