grails版本:3.3.2
我有10万条记录,我从一个csv文件加载,并试图做一个大容量保存。我遇到的问题是,大容量存储的性能比非大容量存储差。
我做的所有在线搜索基本上都使用与我引用的这个站点相同的方法http://krixisolutions.com/bulk-insert-grails-gorm/
我在页面上尝试了所有3种解决方案,下面是其中一种解决方案的示例:
def saveFsRawData(List<FactFsRawData> rawData) {
int startTime = DateTime.newInstance().secondOfDay;
println("Start Save");
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
rawData.eachWithIndex{ FactFsRawData entry, int i ->
session.save(entry);
if(i % 1000 == 0) {
session.flush();
session.clear();
}
}
tx.commit();
session.close();
println("End Save - "+ (DateTime.newInstance().secondOfDay - startTime));
}
我尝试了从100到5k的各种批量大小(在示例中使用1k)。他们平均都在80秒左右。
如果我完全取消批处理,那么我平均得到65秒。
我不确定问题是什么,也不知道我错在哪里。有什么想法吗?
暂无答案!
目前还没有任何答案,快来回答吧!