gpt4 book ai didi

java - 匹配数据库中超过 10000 个不同元素的最佳方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 07:03:33 25 4
gpt4 key购买 nike

好的,这是我的场景:

编程语言:Java

我有一个 MYSQL 数据库,其中包含大约 100,000,000 个条目。

我在内存中有一个值列表,比如 valueList,大约有 10,000 个条目。

我想遍历 valueList 并检查此列表中的每个值是否在数据库中具有匹配项。

这意味着我必须进行至少 10,000 次数据库调用,这对我的应用程序来说效率非常低。另一种方法是将整个数据库一次加载到内存中,然后在内存中进行比较。这速度很快,但需要大量内存。

你们能建议一个更好的方法来解决这个问题吗?

编辑:

假设 valueList 由以下值组成:{"New","York","Brazil","Detroit"}

从数据库中,我将匹配 BrazilDetroit。但不是 NewYork ,尽管 New York 会匹配。所以下一步是,如果有任何剩余的不匹配值,我将它们组合起来看看它们现在是否匹配。所以在这种情况下,我组合了 NewYork,然后找到了匹配项。

在我之前遵循的方法中(一个接一个的数据库调用),这是可能的。但是如果使用创建临时表的方法,这是不可能的

最佳答案

您可以像这样通过一次插入将 10k 条记录插入到临时表中

insert into tmp_table (id_col)
values (1),
(3),
...
(7);

然后加入 2 个表以获得所需的结果。

我不知道你的表结构,但它可能是这样的

select s.* 
from some_table s
inner join tmp_table t on t.id_col = s.id

关于java - 匹配数据库中超过 10000 个不同元素的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19240815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com