【问题标题】:finding duplicates between my list and what's in a database在我的列表和数据库中的内容之间查找重复项
【发布时间】:2011-05-06 18:17:00
【问题描述】:

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

【问题讨论】:

  • 这取决于很多东西,比如使用的数据库、语言、平台等等。请阅读:tinyurl.com/so-hints

标签: database algorithm solution


【解决方案1】:

对象中是否有一些标识符可以用来在数据库中查找它? 如果是,您可以执行以下操作:

  1. 获取对象列表的标识符

  2. 将它们放入 SELECT 语句中,看看哪些已经在数据库中

  3. 将尚未在表中的对象放入INSERT语句中

如果您在 1 中获得的列表对于 SELECT 来说太大了,您也可以将它们放入一个临时表中,然后对对象表执行 JOIN 语句。

干杯

【讨论】:

  • +1 IMO,最后一条语句解决方案。我不会尝试一次传递 500-1000 个密钥。最好将它们填充到临时表中并利用数据库查询数百万行。
  • 非常感谢。特别是连接查询部分。第一部分是我要去的地方,但处理“1”中数百个条目的方式让人担心。最后一部分真的很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-17
  • 2020-01-03
  • 1970-01-01
  • 2018-07-14
  • 1970-01-01
  • 2017-05-17
  • 2020-02-05
相关资源
最近更新 更多