论坛首页 Java企业应用论坛

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

浏览 77142 次
精华帖 (8) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (8)
作者 正文
   发表时间:2008-09-11  
xly_971223 写道
bluemeteor 写道
异常不是这么用滴!

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

扯!!
楼主的情况下一定要进攻式编程, 假设不存在重复 直接插入,如果出异常表示存在重复

select count(*)方式 是防御编程不适合用在这种情况

当然还要考虑重复的比率,上面的方法适合重复比较少的情况


赞同。。。
0 请登录后投票
   发表时间:2008-09-11  
xly_971223 写道
bluemeteor 写道
异常不是这么用滴!

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

扯!!
楼主的情况下一定要进攻式编程, 假设不存在重复 直接插入,如果出异常表示存在重复

select count(*)方式 是防御编程不适合用在这种情况

当然还要考虑重复的比率,上面的方法适合重复比较少的情况


朋友,是和否你都说了,到底谁更能扯....

如果你是程序员,那你想进攻就进攻,想防守就防守。

但如果你是架构师,你需要去问问你的DBA,一个数据库的完整性异常都意味着什么,然后顺带问问DBA一次做了索引的select count(*)都做了什么。
0 请登录后投票
   发表时间:2008-09-11  
bluemeteor 写道
xly_971223 写道
bluemeteor 写道
异常不是这么用滴!

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

扯!!
楼主的情况下一定要进攻式编程, 假设不存在重复 直接插入,如果出异常表示存在重复

select count(*)方式 是防御编程不适合用在这种情况

当然还要考虑重复的比率,上面的方法适合重复比较少的情况


朋友,是和否你都说了,到底谁更能扯....

如果你是程序员,那你想进攻就进攻,想防守就防守。

但如果你是架构师,你需要去问问你的DBA,一个数据库的完整性异常都意味着什么,然后顺带问问DBA一次做了索引的select count(*)都做了什么。

没必要嚼舌头.
作个表试一下不就行了?
0 请登录后投票
   发表时间:2008-09-11  
看重复机率的问题

如果重复机率小于50%

百分之一万
应该使用捕获异常,
这是最优雅,
最体现java优点,
最符合逻辑的处理方式..
0 请登录后投票
   发表时间:2008-09-11  
zhajie 写道
看重复机率的问题

如果重复机率小于50%

百分之一万
应该使用捕获异常,
这是最优雅,
最体现java优点,
最符合逻辑的处理方式..

高效<>优雅
0 请登录后投票
   发表时间:2008-09-11  
抛出异常的爱 写道
zhajie 写道
看重复机率的问题

如果重复机率小于50%

百分之一万
应该使用捕获异常,
这是最优雅,
最体现java优点,
最符合逻辑的处理方式..

高效<>优雅


效率瓶颈主要在数据库,而不是应用,

简单的数据库并且尽量减少对数据库的访问,才能获得高效.
0 请登录后投票
   发表时间:2008-09-11  
可能大家说的都有道理,我对于数据库、调优这方面不在行。
我试来下,目前采用了捕获异常的方式,也还蛮快的,重复数据毕竟不到10%。
还有从来没用过集合存储百万数据,刚试了下,main报错了。那个集合适合百万数据啊,还是需要多个集合存储?
0 请登录后投票
   发表时间:2008-09-11  
主要是先select count(*),再insert 中间有一个时间间隔,如果事务等级低(如果是搞的话,代价也会很大),就会有问题的。

一般我是这样:
try {
    insert....
} catch (...) {
   if (select count(*) > 0) {
       throw ....
   }

   throw ....
}
0 请登录后投票
   发表时间:2008-09-11  
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)
2 请登录后投票
   发表时间:2008-09-11  
tou3921 写道
那个集合适合百万数据啊,还是需要多个集合存储?


Map还行,List肯定不行了
0 请登录后投票
论坛首页 Java企业应用版

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