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