批量插入或使用休眠进行更新?
我需要从每日CSV文件中消耗相当大量的数据。CSV 包含大约 120K 条记录。使用休眠时,这会减慢到爬网速度。基本上,在使用 saveOrUpdate() 时,休眠似乎在每次 INSERT (或 UPDATE) 之前执行 SELECT;对于使用 saveOrUpdate() 持久保存的每个实例,在实际的 INSERT 或 UPDATE 之前发出 SELECT。我可以理解它为什么要这样做,但是对于批量处理来说效率非常低下,我正在寻找替代方案。
我相信性能问题在于我为此使用hibernate的方式,因为我得到了另一个使用本机SQL的版本(以相同的方式解析CSV)及其围绕这个新版本的字面运行圆圈)
因此,对于实际问题,mysqls的休眠替代方案“INSERT ...ON DUPLICATE“语法是否存在?
或者,如果我选择为此执行本机 SQL,是否可以在休眠事务中执行本机 SQL?这意味着,它将支持提交/回滚吗?