我这里有个情况。我有一个包含 >10 列和数百万行的庞大数据库。我正在使用一种匹配算法,它将每个输入记录与数据库中的值进行匹配。
当有数百万条记录要匹配时,数据库操作会花费大量时间。我正在考虑使用多哈希映射或任何结果集替代方案,以便我可以将整个表保存在内存中并防止再次访问数据库......
谁能告诉我该怎么办??
我这里有个情况。我有一个包含 >10 列和数百万行的庞大数据库。我正在使用一种匹配算法,它将每个输入记录与数据库中的值进行匹配。
当有数百万条记录要匹配时,数据库操作会花费大量时间。我正在考虑使用多哈希映射或任何结果集替代方案,以便我可以将整个表保存在内存中并防止再次访问数据库......
谁能告诉我该怎么办??
我认为这不是正确的方法。您正在尝试用 Java 手动完成数据库的工作。我并不是说你没有能力做到这一点,但大多数数据库已经开发了很多年,并且非常擅长做你想要的事情。
但是,需要正确配置数据库才能快速执行给定类型的查询。所以我的建议是你首先检查你是否可以调整数据库配置来提高查询的性能。最常见的事情是将正确的索引添加到您的表中。阅读MySQL 如何使用索引或特定数据库手册的相应部分以获取更多信息。
另一件事是,如果您有这么多数据,将所有内容存储在主内存中可能不会更快,甚至可能不可行。并不是说您必须先传输整个数据。
无论如何,首先尝试使用分析器来识别程序的瓶颈。也许问题甚至不在数据库方面。