首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OrientDB中优化前缀树

在OrientDB中优化前缀树
EN

Stack Overflow用户
提问于 2016-12-23 04:04:22
回答 1查看 24关注 0票数 0

在我的项目中,我有一个相当大的前缀树,可能包含数百万个节点(在我的开发实例中大约有25万个节点),在OrientDB中管理(指向我的图中的其他顶点)。

前缀树的节点由令牌顶点类型表示。每个令牌都有一个'key‘属性,并通过一个’子‘边类型连接到它的子顶点。因此,像"hello world“这样的序列将表示为:

代码语言:javascript
复制
root -child-> "hello" -child-> "world"

目前,我在Token.key上有一个NOTUNIQUE_HASH_INDEX,我像这样查询数据结构:

代码语言:javascript
复制
SELECT EXPAND(OUT('child')[key=:k]) FROM :p

其中k是我要查找的子键,p是父节点的RID。

一般来说,性能是相当好的,但我正在寻找一些想法来改进这个用例的查询、索引或两者。特别是,从具有许多子节点的根节点开始的查询比连接较少的其他节点花费的时间要长得多。

有什么建议吗?提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2016-12-23 23:36:08

OrientDB团队的Luigi Dell‘’Aquila在OrientDB谷歌小组上提供了一个很好的答案。总而言之,下面的查询(由Luigi建议)大大提高了性能。

代码语言:javascript
复制
SELECT FROM Token where key = :k AND in('Child') contains :p

我刚刚运行了一个实际的测试,查询时间减少了97%!有关更多详细信息,请参阅https://groups.google.com/forum/#!topic/orient-database/mUkz6Z7hSwk

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41290872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档