Java 结果集设置为多哈希映射

Java 结果集设置为多哈希映射,java,database,performance,Java,Database,Performance,我这里有个情况。我有一个超过10列和数百万行的大型数据库。我使用的是一种匹配算法,它将每个输入记录和数据库中的值进行匹配 当有数百万条记录需要匹配时,数据库操作将花费大量时间。我正在考虑使用多散列映射或任何结果集选项,以便将整个表保存在内存中,并防止再次命中数据库 有人能告诉我该怎么办吗?我认为这不是正确的方法。您正在尝试用Java手动完成数据库的工作。我并不是说你不能做到这一点,但是大多数数据库已经开发了很多年,并且在做你想做的事情方面做得非常好 但是,要快速执行给定类型的查询,需要正确配置数

我这里有个情况。我有一个超过10列和数百万行的大型数据库。我使用的是一种匹配算法,它将每个输入记录和数据库中的值进行匹配

当有数百万条记录需要匹配时,数据库操作将花费大量时间。我正在考虑使用多散列映射或任何结果集选项,以便将整个表保存在内存中,并防止再次命中数据库


有人能告诉我该怎么办吗?

我认为这不是正确的方法。您正在尝试用Java手动完成数据库的工作。我并不是说你不能做到这一点,但是大多数数据库已经开发了很多年,并且在做你想做的事情方面做得非常好

但是,要快速执行给定类型的查询,需要正确配置数据库。因此,我的建议是,首先检查是否可以调整数据库配置以提高查询的性能。最常见的是向表中添加正确的索引。有关更多信息,请阅读或阅读特定数据库手册的相应部分

另一件事是,如果你有这么多的数据,那么在主内存中存储所有东西可能不会更快,甚至可能是不可行的。并不是说你必须先传输整个数据


在任何情况下,首先尝试使用探查器来识别程序的瓶颈。也许问题甚至不在数据库方面。

我认为这不是正确的方法。您正在尝试用Java手动完成数据库的工作。我并不是说你不能做到这一点,但是大多数数据库已经开发了很多年,并且在做你想做的事情方面做得非常好

但是,要快速执行给定类型的查询,需要正确配置数据库。因此,我的建议是,首先检查是否可以调整数据库配置以提高查询的性能。最常见的是向表中添加正确的索引。有关更多信息,请阅读或阅读特定数据库手册的相应部分

另一件事是,如果你有这么多的数据,那么在主内存中存储所有东西可能不会更快,甚至可能是不可行的。并不是说你必须先传输整个数据


在任何情况下,首先尝试使用探查器来识别程序的瓶颈。可能问题甚至不在数据库方面。

我怀疑将数百万条记录带到内存中进行处理是否比在数据库服务器中处理数据然后只带结果更快。你为什么不在db服务器上做呢?这毕竟是它的特色。首先,确定瓶颈在哪里。它可以是SQL查询、数据库和应用程序之间的数据传输,或者构建结果集对象。尝试先在数据库上独立于应用程序运行SQL。一个经过适当优化的查询和数据库应该不会在搜索数百万条记录时遇到问题。我怀疑将数百万条记录带到内存中进行处理会比在db服务器本身中处理数据然后只带结果更快。你为什么不在db服务器上做呢?这毕竟是它的特色。首先,确定瓶颈在哪里。它可以是SQL查询、数据库和应用程序之间的数据传输,或者构建结果集对象。尝试先在数据库上独立于应用程序运行SQL。一个经过适当优化的查询和数据库在搜索数百万条记录时应该没有问题。酷。我将介绍SQL SERVER/ORACLE索引。然后我将浏览SQL SERVER/ORACLE索引