论坛首页 Java企业应用论坛

向大数据数据库中插入值时,还要判断插入是否重复,然后插入。如何提高效率

浏览 77144 次
精华帖 (8) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (8)
作者 正文
   发表时间:2008-09-11  
我一般都是直接用過程來進行的。感覺到效果應該能夠好一點吧
0 请登录后投票
   发表时间:2008-09-11  
还是用临时表吧
0 请登录后投票
   发表时间:2008-09-11  
merge into
0 请登录后投票
   发表时间:2008-09-12  
为什么非要放到数据库里面做?
0 请登录后投票
   发表时间:2008-09-12  
首先,像数据库插入数据时,数据库做了什么?

其次,异常是怎么抛出的?
0 请登录后投票
   发表时间:2008-09-12  
目的是往数据库插入批量数据,防止插入批量数据

我的想法是,先插入批量数据,然后删除重复的数据,保留其中一条
0 请登录后投票
   发表时间:2008-09-12  
学习学习学习学习
0 请登录后投票
   发表时间:2008-09-12  
抛出异常的爱 写道
1. insert into temp

2. del temp where temp.id in (select temp.id from temp ,use where temp.value=use.value)

3. insert into use (value)values(select temp.value from temp group by temp.value)



和我的想法差不多
不过,我想在加一句
delete from temp
呵呵
0 请登录后投票
   发表时间:2008-09-12  
vvgg 写道
hocus 写道
bluemeteor 写道
异常不是这么用滴!

做好索引,select count(*)来判断才是正道

我也同意
异常不应该被用于流程和业务逻辑判断





重复数据也可以看作一种异常吧


感觉有重复数据的几率远小于正常的几率,所以产生异常的代价和每次查询相比应该算小的。


写try catch,JVM在处理的时候,就是需要占用更多多资源了,不仅仅是发生异常以后
0 请登录后投票
   发表时间:2008-09-12  
卒子99 写道
vvgg 写道
hocus 写道
bluemeteor 写道
异常不是这么用滴!

做好索引,select count(*)来判断才是正道

我也同意
异常不应该被用于流程和业务逻辑判断





重复数据也可以看作一种异常吧


感觉有重复数据的几率远小于正常的几率,所以产生异常的代价和每次查询相比应该算小的。


写try catch,JVM在处理的时候,就是需要占用更多多资源了,不仅仅是发生异常以后


新版JVM的这个问题已经大大改善了,即使有的话,这个性能和数据库交互的开销比起来可以忽略的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics