MySQL导入行数在同一文件和数据库

时间:2015-12-09 16:00:55

标签: mysql mysqlimport

我正在尝试将具有650k +行的+ 75mb csv文件加载到Centos Linux上的MySQL服务器中。这只是一个例子。我也尝试过350mb文件和1.75m行。

我已经通过命令行尝试了这两种MySQL导入功能。 每次将同一个文件导入空表时,行计数不同(不一致)

  1. 截断表。
  2. 从命令行导入。
  3. 检查行数。
  4. 重复
  5. 以下是我的结果:

    • 640568
    • 636547
    • 644483
    • 640961

    以及开启,开启等等......

    我尝试过这两种不同的导入方法:

    mysql -u root -ppassword --execute="USE DBNAME;LOAD DATA INFILE '/home/scripts/extracts/NAMEOFTABLE.CSV' INTO TABLE NAMEOFTABLE FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';" --show-warnings
    

    输出为空,没有警告或错误(我以前见过它们所以我知道它有效)

    mysqlimport -u root -ppassword --fields-terminated-by=, --local DBNAME /home/scripts/extracts/NAMEOFTABLE.CSV
    

    这将输出: DBNAME.NAMEOFTABLE:记录:647435已删除:0跳过:0警告:647435

    首先令人兴奋,但后来我检查了DB中的行,它只有640,480。 :(

    我已经好几天了。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

尝试此查询从phpmyadmin或任何其他mysql客户端

导入csv

在触发查询之前,请确保已将匹配字段的表创建到db。

LOAD DATA LOCAL INFILE '/home/scripts/extracts/NAMEOFTABLE.CSV' INTO TABLE `tbl_csvs`
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(comma separated fields name here field1, field2, field3);