我的 orientdb 数据库有大约 230 万条记录。我正在尝试使用语句查询所有重复记录(其中大约有 750,000 个)-
SELECT FROM(通过 PROP1 从 vin_data 组中选择 PROP1、PROP2、count(*) 作为 c),其中 c > 1。当我将限制设置为 200 左右时,查询需要大约 180 秒(我认为这很慢)。但是当我将限制设置为 750000 时,它会出现内存不足错误。我的内存是 4GB,我设置了 Xms64m 和 Xmx3600m。我在 PROP1 和 PROP1+PROP2(复合)上设置了索引。我的问题是 - 4GB 内存是否足以容纳 230 万条记录的数据库?
最佳答案
对于上面的查询,两个索引都没有值(value),因为它们没有在 GROUP BY 中使用。没有任何“where”条件,扫描整个类。您可以尝试通过在语句末尾添加 PARALLEL 关键字来优化它。如果您有多个内核,它应该会快得多。
无论如何,随着即将发布的 v3.0 版本(仍处于 pre-alpha 阶段),我们在新的 SQL 引擎上付出了很多努力,像您这样的查询应该会快得多。
关于mysql - Orientdb GC overhead limit exceeded/out of memory 错误和性能低下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40457629/