好的,这是我的场景:
编程语言:Java
我有一个MYSQL
包含大约 100,000,000 个条目的数据库。
我在内存中有一个值列表,比如valueList
大约 10,000 个条目。
我想遍历valueList
并检查此列表中的每个值是否在数据库中都有匹配项。
这意味着我必须进行至少 10,000 次数据库调用,这对我的应用程序来说效率非常低。另一种方法是将整个数据库加载到内存中一次,然后在内存中进行比较。这速度很快,但需要大量内存。
你们能提出一个更好的方法来解决这个问题吗?
编辑 :
假设 valueList 由以下值组成:
{"New","York","Brazil","Detroit"}
从数据库中,我将匹配Brazil
和Detroit
。但不是 forNew
和York
,虽然New York
会匹配。所以下一步是,如果有任何剩余的不匹配值,我将它们组合起来看看它们现在是否匹配。所以在这种情况下,我组合New
然后York
找到匹配项。
在我之前遵循的方法(一个一个的数据库调用)中,这是可能的。但是在创建临时表的方法的情况下,这是不可能的