通过加载数据infile将95 GB CSV文件上传到MySQL MyISAM表中:CSV引擎是另一种选择吗?

Jan*_*nvb 8 mysql import mysql-management file-upload load-data-infile

我正在尝试通过以下命令将95 GB CSV文件上传到MySQL数据库(MySQL 5.1.36):

CREATE TABLE MOD13Q1 (
rid INT UNSIGNED NOT NULL AUTO_INCREMENT,
gid MEDIUMINT(6) UNSIGNED NOT NULL ,
yr SMALLINT(4) UNSIGNED NOT NULL ,
dyyr SMALLINT(4) UNSIGNED NOT NULL ,
ndvi DECIMAL(7,4) NOT NULL comment 'NA value is 9',
reliability TINYINT(4)  NOT NULL comment 'NA value is 9',
ndviquality1 TINYINT(1) NOT NULL ,
ndviquality2 TINYINT(1) NOT NULL ,
primary key (rid),
key(gid)
) ENGINE = MyISAM ;

LOAD DATA INFILE 'datafile.csv' INTO TABLE MOD13Q1 FIELDS TERMINATED by ',' LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(gid, yr, dyyr, ndvi, reliability,
ndviquality1, ndviquality2
) ;
Run Code Online (Sandbox Code Playgroud)

我目前正在通过DOS运行此脚本,但数据库没有响应.它适用于较小的CSV文件(1.5 GB).它适用于此文件大小吗?

您对如何更有效/更快地完成此操作有任何建议吗?engine = CSV是否可以替代(索引未激活! - >因此查询可能运行速度超慢?).

更新

感谢您的提示,它有效!

mysql> LOAD DATA INFILE 'E:\\AAJan\\data\\data.csv' INTO TABL
E MOD13Q1
    -> FIELDS TERMINATED by ','
    ->     LINES TERMINATED BY '\r\n'
    ->     IGNORE 1 LINES
    ->     (gid, yr, dyyr, ndvi, reliability,
    ->     ndviquality1, ndviquality2
    ->     ) ;
Query OK, -1923241485 rows affected (18 hours 28 min 51.26 sec)
Records: -1923241485  Deleted: 0  Skipped: 0  Warnings: 0

mysql>
Run Code Online (Sandbox Code Playgroud)

希望这有助于其他人避免以块的形式分割数据.

Rag*_*geZ 1

导入时应禁用所有约束。除此之外,我认为它应该可以正常工作,并且需要注意的是,这将需要一段时间,可能需要几个小时。