load data local infile 载入慢

Speeddsy 2012-06-10 08:54:27
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使用率不高
这是为什么呢?有什么办法让速度提上来!
谢谢解答!
...全文
248 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小小小蜗牛 2012-06-12
  • 打赏
  • 举报
回复
实在不行就用工具导吧
Speeddsy 2012-06-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

在命令行执行的吗? 导入到哪?远程服务器吧。
[/Quote]
local啊,本地服务器啊,网上不是有人说innodb表导入时不需要禁用索引么?据说innodb中禁用索引和
不禁用速度没多大区别,我没有试验过,我现在是没有禁用索引,大概是这个问题了。
一起混吧 2012-06-10
  • 打赏
  • 举报
回复
在命令行执行的吗? 导入到哪?远程服务器吧。
ACMAIN_CHM 2012-06-10
  • 打赏
  • 举报
回复
你的文件在什么位置?和MYSQL在同一服务器上?

另外可以把该表上的索引先暂时删除,LOAD完后再重建索引。
Speeddsy 2012-06-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你的文件在什么位置?和MYSQL在同一服务器上?

另外可以把该表上的索引先暂时删除,LOAD完后再重建索引。
[/Quote]
请问往上面说的这个正确么?

问题:导入数据时是否需要禁用索引?

  解答:

  在使用load data导入数据时,如果导入的表是MyISAM的,对于空表,MySQL数据库会把所有的非唯一索引进行一次独立的处理,而对于非空的表则会边插入边建索引。

  所以对于非空的MyISAM表,需要用alter table xxx disable keys禁用索引,导入完成之后再用alter table xxx enable keys打开。

  对于innodb,从测试的结果看无论表中是否已有记录,索引都是单独处理的,所以我们不需要禁用索引。
Speeddsy 2012-06-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

索引删除后试一下是否能快,导入完后重新建立索引。
[/Quote]
请问运行中能关闭索引功能么?
Rotel-刘志东 2012-06-10
  • 打赏
  • 举报
回复
索引删除后试一下是否能快,导入完后重新建立索引。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧