怎么能提高向mysql中导入数据的速度

STUDENTzyr 2011-06-04 03:54:47
用php mysql开发的项目,现在遇到个问题是在向数据库中导入数据时要花很久 怎么做才能提高速度呢
...全文
225 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
回南山种豆 2011-06-04
  • 打赏
  • 举报
回复
单批比多批效率高,buik_insrt_buffer_siae错了应该是bulk_insert_buffer_size
回南山种豆 2011-06-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 studentzyr 的回复:]
引用 2 楼 rucypli 的回复:

set global innodb_flush_log_at_trx_commit=0;


我查查看
[/Quote]

这个参数没用
你导入时要看你用的什么引擎
对于myisam
你可以先设置
alter table xx disable /enable keys
然后load data 这效果对于大数据会有明显提高
对于innodb
1可以先把你的数据按主见按顺序大致怕列,然后导入,理由是innodb会在每个主键上创建聚簇索引,你若你先大致拍一下,插入时就不用再排序,聚簇索引必须是排序的,这样会节约一点时间。但是可能不怎么明显
2你把autocommit设置0这也会有点提高,在你把数据导入后记得设置为1否则导入不会成功


如果 你用insert
单批执行会高很多,对于myisam还可以设置buik_insrt_buffer_siae参数 ,insert delayed也会有所提高,不过建议还是用load data
STUDENTzyr 2011-06-04
  • 打赏
  • 举报
回复
要导入数据的是 csv格式的
STUDENTzyr 2011-06-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rucypli 的回复:]

set global innodb_flush_log_at_trx_commit=0;
[/Quote]

我查查看
STUDENTzyr 2011-06-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acmain_chm 的回复:]

你目前是用什么方法导入的? LOAD DATA?
[/Quote]

别人给我的问题 我还没看具体代码 只是想先问问看有什么思路做这个东西
rucypli 2011-06-04
  • 打赏
  • 举报
回复
set global innodb_flush_log_at_trx_commit=0;
ACMAIN_CHM 2011-06-04
  • 打赏
  • 举报
回复
你目前是用什么方法导入的? LOAD DATA?

56,940

社区成员

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

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