我想通過以下命令上傳95 GB CSV文件轉換爲MySQL數據庫(MySQL的5.1.36):通過加載數據infile將CSV文件上傳到MyISAM表中:CSV引擎是一種替代方案嗎?
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
) ;
我此刻通過DOS運行此腳本,但數據庫沒有迴應。它適用於較小的CSV文件(1.5 GB)。它會對這個文件大小起作用嗎?
你有什麼建議如何更有效/更快地做到這一點?引擎= 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>
希望這有助於其他人避免將數據分成大塊。
@標誌:東京內閣是關鍵/值DBM所以沒有什麼可做恕我直言 – RageZ 2009-11-20 07:56:58