论坛首页 Java企业应用论坛

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

浏览 77102 次
精华帖 (8) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (8)
作者 正文
   发表时间:2008-09-21  
这个貌似是设计上的问题吧?不想想问题跟本出在哪?你这样修修补补得到什么时候?

我觉得按你目前的情况:
1 添加索引 设置索引并定期rebuild
2 分段存储。拆它10几20个表。按规则存。

还有性能问题,那就得拼人品了。我觉着人品有时候很重要。 

tou3921 写道
向大数据数据库中插入值时,还要判断插入是否重复,然后插入。如何提高效率。
每次insert时还要select下,现在数据库里的数据已有几十万条,这样批量插入的时候效率就会很低,不得不这么做,谁有好的方法。
想过把关键内容取来放在map或者list里,然后每次从集合里判断,可这样内存就吃不消了。
...........

0 请登录后投票
   发表时间:2008-09-22  
1 为什么会有这样的业务需求?数据库建模是否有不合理的地方?
2 是不是可以用人工主键来避免这样的判断?
3 加索引
0 请登录后投票
   发表时间:2008-09-23  
问题的关键是,你判断重复的条件是什么?insert into 的时候把where 条件写足了,把要插入的和原表里边有的数据排除掉不就得了。
0 请登录后投票
   发表时间:2008-09-23  
先给个建议,如果用Oracle,去看看Merge语句吧
0 请登录后投票
   发表时间:2008-09-24  
tou3921 写道
向大数据数据库中插入值时,还要判断插入是否重复,然后插入。如何提高效率。
每次insert时还要select下,现在数据库里的数据已有几十万条,这样批量插入的时候效率就会很低,不得不这么做,谁有好的方法。
想过把关键内容取来放在map或者list里,然后每次从集合里判断,可这样内存就吃不消了。
...........




可以参考一下这篇文章 :http://crabdave.iteye.com/blog/189440
我在项目中是这么用的。
0 请登录后投票
   发表时间:2008-09-24  
很想知道这问题的最优解决办法
因为我也碰到 这个问题了
0 请登录后投票
   发表时间:2008-09-25  
为什么会有重复记录写入表中呢?首先考虑能否避免插入重复记录。

如果不能的话应该给表建立恰当的索引,来提高效率。
0 请登录后投票
   发表时间:2008-09-25  
如果是oracle 可以使用merge来判断
0 请登录后投票
   发表时间:2008-09-27  
从语法上来看的话,oracle的merge 和 insert ignore 好像处理差不多,就是不知道是否有人测试对比一下;
0 请登录后投票
   发表时间:2008-09-28  
是不是必须2次访问数据库,一次询问一次插入?
0 请登录后投票
论坛首页 Java企业应用版

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