我正在使用OrientDB-NET Library,但没有找到任何有效的批量插入解决方案。目前我在使用以下代码时有大约6K顶点的1M边缘,在我的机器Core i7 6th Gen,2.5GHz,8GB RAM上花费约30分钟(实际上与SQL Server数据负载相比性能最差)。
在Java API中找到了MassiveInsert的解决方案。但是在.NET中找不到任何解决方案。
object locker = new object();
Parallel.ForEach(_listRating, r=>
{
lock (locker)
{
oDB.Command(" create edge rated from (select from Users where userID = " + r.userID + ") to (select from Movies where MovieID = " + r.movieID + " ) set rating =" + r.Ratings + " ");
}
});
答案 0 :(得分:1)
如果您要将多个create edge
作为一个查询发送,请使用SQL Batch
begin;
CREATE EDGE E FROM #34:3349 TO #32:3349;
CREATE EDGE E FROM #41:10971 TO #33:3348;
...
commit retry 100;
在我的情况下(PHP),加速度非常高。