批量导入数据

低调茄子 2011-07-03 03:49:06
往mysql数据库里导入45万条数据,30分导入完毕,可以做到吗?高人指点一下,具体点,我实现的太耗时。18分钟才导入4万来条。
...全文
234 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
低调茄子 2011-07-17
  • 打赏
  • 举报
回复
感谢大家,最后我用的是LOAD DATA语句,先把数据写到txt文件里,最后一次装载到数据库里。这样好几百万条数据很快就弄进去了。
zn85600301 2011-07-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fly_m 的回复:]

45万条,要不到那么长时间。开多线程,每线程负责一部分数据,线程也不要开多了。建议就开45个线程吧,一个线程导1万条。

线程间不要进行通信,不要关联。如果内存够大,一次多取点数据在内存中,减少处理逻辑及访问数据库的时间。
[/Quote]

多线程不一定比单线程快 每个线程之间争用CPU执行时间块 容易带来更大的性能损耗

楼主可以百度下 将insert 写成程序块之类的 貌似是加上begin N个insert语句写一起 end;
kyousuke 2011-07-04
  • 打赏
  • 举报
回复
每天10分
xieshengjun2009 2011-07-04
  • 打赏
  • 举报
回复
Study!
低调茄子 2011-07-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 scare111 的回复:]
MYSQL自带的工具没有吗?
[/Quote]
我要用程序的
scare111 2011-07-04
  • 打赏
  • 举报
回复
MYSQL自带的工具没有吗?
凯瑞甘 2011-07-04
  • 打赏
  • 举报
回复
用多线程,线程开的多少自己看,你读的时候可以试着换一下输入流,导入的话用pre...那个
低调茄子 2011-07-04
  • 打赏
  • 举报
回复
感谢大家,不过我改进了一下,用的是批量导入,12分钟导完了45万条数据,我们技术总监说,还不够快,12分钟450也可以导进去。
我用的是MySQL数据库。Java语言,在service层处理数据,从外部文件txt读出来,写到数据库一张表中。数据库操作用的是JDBC
xianaofei 2011-07-03
  • 打赏
  • 举报
回复
你可以用for()循环开多个线程 然后用事物和批量处理 1000条提交一次
事物处理放在for循环的外面
Fly_m 2011-07-03
  • 打赏
  • 举报
回复
45万条,要不到那么长时间。开多线程,每线程负责一部分数据,线程也不要开多了。建议就开45个线程吧,一个线程导1万条。

线程间不要进行通信,不要关联。如果内存够大,一次多取点数据在内存中,减少处理逻辑及访问数据库的时间。
zjt321 2011-07-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wula0010 的回复:]
可以,多线程导入数据,........
[/Quote]
yes
wula0010 2011-07-03
  • 打赏
  • 举报
回复
可以,多线程导入数据,........

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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