OrientDB SQL vs Gremlin

OrientDB SQL vs Gremlin,orientdb,gremlin,Orientdb,Gremlin,OrientDB中哪种查询语言提供了最快的解决方案:SQL还是Gremlin?Gremlin非常有吸引力,因为它对其他图形库是通用的,但是这需要在OrientDB中进行大量翻译还是根本不需要(延迟是多少) 编辑 正如@decebal指出的,这不是一个好的测试用例场景。 请放弃以下基准 图形数据库的功能来自关系,这些查询是 显然倾向于简单的结构,这反映了 结论是,当您想要简单的数据结构时,您最好 使用文档而不是图形。。。不能把苹果和梨相比 ======== 我运行了一些测试,SQL明显更快。 我使

OrientDB中哪种查询语言提供了最快的解决方案:SQL还是Gremlin?Gremlin非常有吸引力,因为它对其他图形库是通用的,但是这需要在OrientDB中进行大量翻译还是根本不需要(延迟是多少)

编辑 正如@decebal指出的,这不是一个好的测试用例场景。 请放弃以下基准

图形数据库的功能来自关系,这些查询是 显然倾向于简单的结构,这反映了 结论是,当您想要简单的数据结构时,您最好 使用文档而不是图形。。。不能把苹果和梨相比

========

我运行了一些测试,SQL明显更快。 我使用的代码是:

long startTime = System.currentTimeMillis();

// Object ret = orientGraph.command(new OCommandGremlin("g.v('9:68128').both().both()")).execute();
String oSqlCommand = "SELECT expand(out().out()) FROM V where user_id='9935'";
Object ret = orientGraph.command(new OCommandSQL(oSqlCommand)).execute();
Iterable<Vertex> vertices = (Iterable<Vertex>) ret;

long endTime = System.currentTimeMillis();
long operationTime = endTime - startTime;
System.out.println("Operation took " + operationTime + " ms");
long startTime=System.currentTimeMillis();
//Object ret=orientGraph.command(新的OCommandGremlin(“g.v('9:68128')).both().both()).execute();
String oSqlCommand=“选择从V展开(out().out()),其中user_id='9935'”;
Object ret=orientGraph.command(新的OCommandSQL(oSqlCommand)).execute();
Iterable顶点=(Iterable)ret;
long-endTime=System.currentTimeMillis();
长运行时间=结束时间-开始时间;
System.out.println(“操作耗时”+操作时间+“毫秒”);
我只需要wikitalk数据集。 Gremlin命令耗时约42541秒,而SQL命令平均耗时仅1831毫秒


测试在Linux Debian 64位VM 4GB RAM、1024MB堆和2048MB磁盘缓存上运行。

真的吗?这是一个非常糟糕的测试,图形数据库的能力来自关系,这些查询显然偏向于简单的结构,这反映了一个唯一的结论,即当您想要简单的数据结构时,最好使用文档而不是图形。。。即使这个问题已经有2年历史了,也无法将苹果和梨饼进行比较。这可能是新用户可能会遇到的一个问题。后来在我对图形数据库的研究中,我发现这不是最理想的测试用例。