java MYSQL 查询无反应

cherishxq 2016-06-23 07:23:24
各位大神好:
情况是这样的,我这边有个功能是从txt文件里面读数据,然后与数据库进行一些复杂的比对之后,在保存到数据库中!
由于我技术水平有限,写的不是很好,1M的文件和数据库进行比对后需要花费30S左右的时间。

然后问题来了,在准备好几个表的数据后,保存其中某个对象的数到据数据库的时候会报错(文件已经读取完毕,在finally里面也写了关闭流的代码),在连续几次报错之后,再次访问该txt读取方法就不行了,打断点,发现:在查询数据库的时候就没反应了,tomcat也没报错,浏览器一直在提示等待响应.....,然后访问别的查询数据库方法也是一样的情况(重启TOMCAT后恢复正常)


我用的mybatis,往数据保存数据用的是批量插入(我的是一次性插入数据库,不是分段插入)
insert into .....ON DUPLICATE KEY UPDATE.....

是不是我这边批量插入的时候报错了,造成数据库堵塞啥的?那我该在报错的是释放呢?还是有别的情况?

像这种读取文件,然后与和数据库进行频繁的比对,得到数据后。批量插入的功能怎么实现才效率最高。
还请大神解惑
...全文
220 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT求解释 2016-06-29
  • 打赏
  • 举报
回复
http://www.cnblogs.com/xhan/p/3958521.html 自己上百度搜一些之类的微博
  • 打赏
  • 举报
回复
查询无反应,可能是查询速度非常慢,或者有阻塞导致的,因为你用的是insert on duplicate update,就是如果有重复,那么update更新,这个有可能导致阻塞的
  • 打赏
  • 举报
回复
我觉得最好是从txt文件,把数据直接读取到一个表里,然后 用这个表的数据和数据库里的表,进行对比。
cherishxq 2016-06-24
  • 打赏
  • 举报
回复
引用 2 楼 yupeigu 的回复:
查询无反应,可能是查询速度非常慢,或者有阻塞导致的,因为你用的是insert on duplicate update,就是如果有重复,那么update更新,这个有可能导致阻塞的
大神,您好。那么这个问题怎么解决?有比较好的办法么?

56,677

社区成员

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

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