我正在使用Titan和Cassandra,并且有几个(相关的)关于使用Gremlin查询数据库的问题:
1。)是否有更快的方法来计算所有顶点而不是
g.V.count()
Titan声称使用索引。但是如何使用没有属性的索引?
WARN c.t.t.g.transaction.StandardTitanTx - Query requires iterating over all vertices [<>]. For better performance, use indexes
2。)是否有更快的方法来计算属性'myProperty'而不是
的所有顶点g.V.has('myProperty').count()
Titan再次意味着:
WARN c.t.t.g.transaction.StandardTitanTx - Query requires iterating over all vertices [(myProperty<> null)]. For better performance, use indexes
但是,我怎么能这样做?我已经有了'myProperty'的索引,但它需要一个快速查询的值。
3。)和边缘相同的问题......
答案 0 :(得分:4)
使用g.V.count()
迭代所有顶点是获得计数的唯一方法。它不能更快地完成&#34;。如果您的图表太大以至于需要数小时才能得到答案,或者您的查询根本不会返回,那么您应该考虑使用Faunus。然而,即使使用Faunus,你也可以期待等待你的答案(例如Hadoop的性质......这里没有亚秒响应),但至少你会得到一个。
每次进行表扫描(即迭代所有顶点)时,都会得到“#34;迭代所有顶点&#34;”的警告。一般来说,你不想这样做,因为你永远不会得到回应。添加索引不会帮助您更快地计算所有顶点。
边缘有相同的答案。如果可以,请在Gremlin中使用g.E.count()
。如果花了太长时间,那么试试Faunus,这样你至少可以得到一个答案。
答案 1 :(得分:0)