2011-05-06 26 views
1

我想了解如何将解决方案实施到以下的一些建议 我有一个对象列表。 (数百个元素,如500-1000,或更多)。 我有这样的对象的记录数据库中的表。数据库有百万条记录。 我需要发送一个对象的列表到数据库,并报告与重复的列表,如果找到。 初始解决方案,从数据库加载到Java,然后比较列表 - 是不好的解决方案。我们有内存不足的问题,试图从数据库加载所有数百万条记录。查找我的列表和数据库中的内容之间的重复项

+2

这取决于如此多的东西,如数据库使用,语言,平台等。请阅读以下内容:http://tinyurl.com/so-hints – Oded 2011-05-06 18:20:06

回答

3

在对象中是否存在可以在数据库中查找的标识符? 如果是的话,你可以做到以下几点:

  1. 获取标识符为对象的名单

  2. 把它们放入一个SELECT语句,看看哪些是已经在数据库

  3. 认沽将尚未在表中的对象转换为INSERT语句

如果您得到的列表1太大, SELECT,你也可以把它们放到一个临时表中,并用对象表做一个JOIN语句。

干杯

+2

+1 IMO,最后一条声明*是*解决方案。我不会尝试一次通过500-1000个按键。最好将它们填充到登台表中,并利用数据库来查询数百万行。 – Thomas 2011-05-06 18:32:36

+0

非常感谢。 特别是加入查询部分。第一部分是我去过的地方,但是处理“1”中数百个条目的方式让人担忧。最后一部分非常有帮助。 – 2011-05-09 14:11:06