Orientdb 超慢查询性能
Orientdb Super Slow Query Performance
我已经尝试了很多东西太久了,我正在为 Orientdb 社区版 3.0.0RC2 的 性能 而苦苦挣扎。当前查询需要 60-100 秒 到 运行 之间的任何时间,但我认为它应该花费几毫秒,因为它 只有 27k 条记录使用索引设置进行扫描。服务器(普通服务器配置)是在我的个人电脑上设置的,它有 8gb 的内存和 HDD .
查询 运行:select count(*) from ClassA where InitialInvestment = 2000
- Class A(26,844 条记录):
- 初始投资 |双人
- LeveragedEtfPercent |双人
- 市场百分比 |双人
- 整体回报 |双人
- 现金百分比 |双人
- 每季度添加 |双人
- 开始日期 |日期
- 结果 | EmbeddedList -> Class DataRecord(每个结果列表大约有 9-10k 项)
索引(全部已"rebuilt"):
- InitialInvestment 上的 NotUnique SBTREE
- MarketPercent 和 LeveragedEtfPercent 上的 NotUnique SBTREE
- MarketPercent、LeveragedEtfPercent 和 StartDate 上的独特 SBTree
Class DataRecord(奇怪的是,0 条记录显示在 Studio 的架构视图中,但嵌入列表中的项目显示 class of "DataRecord" - 会询问这个
之后)。这个 class 只有三个 DOUBLE 字段和一个 Date 字段。怀疑这个 class 会影响查询,因为我没有尝试查询它。
有什么想法吗?
- 当 v3.0 GA 发布超过 1 个月时,不要使用 Release Candidate。现在你可以得到 v3.0.2 GA 了。
- 你能解释一下吗?
explain select...
这样您就可以检查是否使用了任何索引。请 post 通过更新您的问题得到结果。
- 嵌入了 9-10 千个 DataRecord 对象,您的记录看起来太胖了。在主记录之外创建 DataRecord 对象并向它们 link 轻得多。
我已经尝试了很多东西太久了,我正在为 Orientdb 社区版 3.0.0RC2 的 性能 而苦苦挣扎。当前查询需要 60-100 秒 到 运行 之间的任何时间,但我认为它应该花费几毫秒,因为它 只有 27k 条记录使用索引设置进行扫描。服务器(普通服务器配置)是在我的个人电脑上设置的,它有 8gb 的内存和 HDD .
查询 运行:select count(*) from ClassA where InitialInvestment = 2000
- Class A(26,844 条记录):
- 初始投资 |双人
- LeveragedEtfPercent |双人
- 市场百分比 |双人
- 整体回报 |双人
- 现金百分比 |双人
- 每季度添加 |双人
- 开始日期 |日期
- 结果 | EmbeddedList -> Class DataRecord(每个结果列表大约有 9-10k 项)
索引(全部已"rebuilt"):
- InitialInvestment 上的 NotUnique SBTREE
- MarketPercent 和 LeveragedEtfPercent 上的 NotUnique SBTREE
- MarketPercent、LeveragedEtfPercent 和 StartDate 上的独特 SBTree
Class DataRecord(奇怪的是,0 条记录显示在 Studio 的架构视图中,但嵌入列表中的项目显示 class of "DataRecord" - 会询问这个 之后)。这个 class 只有三个 DOUBLE 字段和一个 Date 字段。怀疑这个 class 会影响查询,因为我没有尝试查询它。
有什么想法吗?
- 当 v3.0 GA 发布超过 1 个月时,不要使用 Release Candidate。现在你可以得到 v3.0.2 GA 了。
- 你能解释一下吗?
explain select...
这样您就可以检查是否使用了任何索引。请 post 通过更新您的问题得到结果。 - 嵌入了 9-10 千个 DataRecord 对象,您的记录看起来太胖了。在主记录之外创建 DataRecord 对象并向它们 link 轻得多。