load data local infile 'e:/B/a_tb_call.txt' into table tb_call
fields terminated by '\t' lines terminated by '\r\n'
MySQL使用这条语句载入5.7G的数据,花费6个小时还没完成,发现载入过程中cpu使用率不高
这是为什么呢?有什么办法让速度提上来!
谢谢解答!

解决方案 »

  1.   

    你的文件在什么位置?和MYSQL在同一服务器上?另外可以把该表上的索引先暂时删除,LOAD完后再重建索引。
      

  2.   

    local啊,本地服务器啊,网上不是有人说innodb表导入时不需要禁用索引么?据说innodb中禁用索引和
    不禁用速度没多大区别,我没有试验过,我现在是没有禁用索引,大概是这个问题了。
      

  3.   

    请问往上面说的这个正确么?问题:导入数据时是否需要禁用索引?   解答:   在使用load data导入数据时,如果导入的表是MyISAM的,对于空表,MySQL数据库会把所有的非唯一索引进行一次独立的处理,而对于非空的表则会边插入边建索引。   所以对于非空的MyISAM表,需要用alter table xxx disable keys禁用索引,导入完成之后再用alter table xxx enable keys打开。   对于innodb,从测试的结果看无论表中是否已有记录,索引都是单独处理的,所以我们不需要禁用索引。