精华帖 (8) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (8)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-21
这个貌似是设计上的问题吧?不想想问题跟本出在哪?你这样修修补补得到什么时候?
我觉得按你目前的情况: 1 添加索引 设置索引并定期rebuild 2 分段存储。拆它10几20个表。按规则存。 还有性能问题,那就得拼人品了。我觉着人品有时候很重要。 tou3921 写道 向大数据数据库中插入值时,还要判断插入是否重复,然后插入。如何提高效率。
每次insert时还要select下,现在数据库里的数据已有几十万条,这样批量插入的时候效率就会很低,不得不这么做,谁有好的方法。 想过把关键内容取来放在map或者list里,然后每次从集合里判断,可这样内存就吃不消了。 ........... |
|
返回顶楼 | |
发表时间:2008-09-22
1 为什么会有这样的业务需求?数据库建模是否有不合理的地方?
2 是不是可以用人工主键来避免这样的判断? 3 加索引 |
|
返回顶楼 | |
发表时间:2008-09-23
问题的关键是,你判断重复的条件是什么?insert into 的时候把where 条件写足了,把要插入的和原表里边有的数据排除掉不就得了。
|
|
返回顶楼 | |
发表时间:2008-09-23
先给个建议,如果用Oracle,去看看Merge语句吧
|
|
返回顶楼 | |
发表时间:2008-09-24
tou3921 写道 向大数据数据库中插入值时,还要判断插入是否重复,然后插入。如何提高效率。
每次insert时还要select下,现在数据库里的数据已有几十万条,这样批量插入的时候效率就会很低,不得不这么做,谁有好的方法。 想过把关键内容取来放在map或者list里,然后每次从集合里判断,可这样内存就吃不消了。 ........... 可以参考一下这篇文章 :http://crabdave.iteye.com/blog/189440 我在项目中是这么用的。 |
|
返回顶楼 | |
发表时间:2008-09-24
很想知道这问题的最优解决办法
因为我也碰到 这个问题了 |
|
返回顶楼 | |
发表时间:2008-09-25
为什么会有重复记录写入表中呢?首先考虑能否避免插入重复记录。
如果不能的话应该给表建立恰当的索引,来提高效率。 |
|
返回顶楼 | |
发表时间:2008-09-25
如果是oracle 可以使用merge来判断
|
|
返回顶楼 | |
发表时间:2008-09-27
从语法上来看的话,oracle的merge 和 insert ignore 好像处理差不多,就是不知道是否有人测试对比一下;
|
|
返回顶楼 | |
发表时间:2008-09-28
是不是必须2次访问数据库,一次询问一次插入?
|
|
返回顶楼 | |