Java 使用重复检查插入时,Orientdb的性能非常慢
我正在使用RESTAPI向OrientDB发送一批SQL命令。每个批次包含约6000个顶点和13200条边。我正在使用csv创建顶点和边,1批是分析csv中100行生成的所有查询。我将在插入任何一个之前检查重复项,如下所示: 顶点Java 使用重复检查插入时,Orientdb的性能非常慢,java,nosql,orientdb,Java,Nosql,Orientdb,我正在使用RESTAPI向OrientDB发送一批SQL命令。每个批次包含约6000个顶点和13200条边。我正在使用csv创建顶点和边,1批是分析csv中100行生成的所有查询。我将在插入任何一个之前检查重复项,如下所示: 顶点 UPDATE vertex SET property1 = "property1", property2 = "property2" UPSERT WHERE property1 = "property1"; 边(使用此方法,因为边不支持UPSERT) 第一批大约需
UPDATE vertex SET property1 = "property1", property2 = "property2" UPSERT WHERE property1 = "property1";
边(使用此方法,因为边不支持UPSERT)
第一批大约需要50秒,第二批大约需要250秒,第三批超过1000秒。我怀疑搜索以前记录中的重复项会减慢速度,但是数据量太少,我怀疑是我的重复检查还是服务器配置造成的
有没有更好的方法来检查副本?我已更新服务器配置以使用以下内容:
storage.diskCache.bufferSize = 40GB
query.parallelMinimumRecords = 1
storage.useWAL = false
您是否在
顶点属性1
上创建了唯一索引?您好,您使用的是什么版本?Thx@wolf4ood我首先尝试了,但它阻止了重复的插入,这是好的,但也引发了一个错误,这是坏的。我需要在服务器端处理这个错误,因为我需要尽可能减少服务器和客户端之间的往返。@MichelaBonizzi我使用的是2.2.25
storage.diskCache.bufferSize = 40GB
query.parallelMinimumRecords = 1
storage.useWAL = false