如何解决快速更新所有边缘的属性?
我想每n周期/秒/分钟更新一次每个“边缘”中的属性。 您可能会怀疑这很耗时,并且可能无法正常工作。
一种可能的方法是分块进行。 问题是什么是最好的方法。
这是完整扫描的样子:
match (n1)-[x:q]-(n2)
set x.decay = x.decay * exp(-rate)
因此,想法是衰减边缘并在边缘达到特定值时将其删除。
如果我按块进行操作,如何跟踪已经衰减的那些,以便更快,更便宜地跳过它们。
解决方法
听起来像您需要更好的方法。
例如,在每个关系中存储计算出的到期时间(作为时间戳)。想要使用这种关系的查询可以测试它没有过期。这样,就无需更新任何关系属性,并且所有查询都将获得正确的行为(精确到毫秒)。
以下是示例代码段:
...
MATCH (foo)-[rel:REL]->(bar)
WHERE timestamp() < rel.expiration
您还可以定期删除过期的关系以清理数据库并提高查询性能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。