大数据量更新问题 mysql

software91 2008-11-14 08:23:39
问题描述:需要从一个网站采集数据,可以满足高并发的接口。
现在大概需要发送10000条请求,获取到的xml文件解析后插入数据库,每个xml文件大致有40条数据。

现在解决方式:
jdbc+数据库连接池 20个并发连接
用100个线程发送请求

问题:
一开始效率比较高,更新到一半左右的时候更新速度变得很慢。
...全文
255 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
software91 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wwwwb 的回复:]
打开事务没有?打开事务,最后提交试试
[/Quote]
之前尝试过,现在没有应用着
懒得去死 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 software91 的回复:]
那需要怎么优化比较好些呢
[/Quote]

你看过 mysqldump 导出来的数据吗?
导出来一个表然后打开看看就知道怎么干了!
wwwwb 2008-11-14
  • 打赏
  • 举报
回复
打开事务没有?打开事务,最后提交试试
software91 2008-11-14
  • 打赏
  • 举报
回复
那需要怎么优化比较好些呢
懒得去死 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 software91 的回复:]
我现在采取的插入形式是insert ...values(); 因为并不是每条数据都是需要插入的,大部分数据是update;

插入之前都disable_keys 完了后再enable_keys; 是这样做的
[/Quote]


你那种形式在后期不是一般的慢!!
software91 2008-11-14
  • 打赏
  • 举报
回复
我现在采取的插入形式是insert ...values(); 因为并不是每条数据都是需要插入的,大部分数据是update;

插入之前都disable_keys 完了后再enable_keys; 是这样做的
懒得去死 2008-11-14
  • 打赏
  • 举报
回复
你的插入形式是insert ... values (),(),.;还是直接insert ...values(); insert ... values()...;

插入之前都disable_keys 完了后再enable_keys;

懒得去死 2008-11-14
  • 打赏
  • 举报
回复
事务只能保持ACID,不能保证写数据的速度!

用保证写的速度,就用LOCK TABLS;
jxaudfm 2008-11-14
  • 打赏
  • 举报
回复
学习学习

56,687

社区成员

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

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