我需要从许多文件中插入许多行,例如:
Identifier NumberValue
对于我在looing的每一行,如果已经存在于带有Identifier的数据库行中,如果存在,我将获取其NumberValue并从到达行添加NumberValue并更新数据库。 我发现在数据库中查找每一行(总共几百万条记录)需要花费很多时间。 在此地图中插入数据库之前创建地图并查看是否有意义? 感谢。
答案 0 :(得分:1)
我会得到值,添加一百行,并在一次交易中为NumberValue
添加一百。
答案 1 :(得分:1)
如果使用
,则可以将索引添加到要搜索的列中(如果它不是主键)@Table(indexes = { @Index( columnList = ".." ) })
答案 2 :(得分:1)
所以基本上你要问的是检查整个数据库的内存映射是否会更快,以便在存在某些内容的情况下节省查找的事务成本,如果没有,则执行插入数据库的操作?
答案当然是“也许”。尽管您不想听到,但它实际上取决于您未向我们解释的数据库的详细信息。
通常,内存映射会使事情更快地运行。但正如我相信其他人可以指出的那样,你需要处理很多问题和例外。一次读取一百万行可能比一次读取一百万行更快,以便检查该特定标识符是否存在,但同样,它实际上取决于数量和资源与可用时间之间的平衡。
如何解决非答案......