update与upsert性能比较及字符串拼接问题

提问参考模版:

  • nebula 版本:2.0.0
  • 部署方式(分布式 / 单机 / Docker / DBaaS):分布式
  • 硬件信息
    • 磁盘( 推荐使用 SSD)
    • CPU、内存信息
  • 问题的具体描述
  • 相关的 meta / storage / graph info 日志信息

问题1:
官网文档上有提到upsert是分区级别的序列操作, 那update呢?
性能差距大吗?

问题2:
看string类型没有提供字符串的拼接, 而是直接使用"+"拼接
那我在 “a” + “b” + “c” … + "z"的过程中是否会产生多个中间变量?

upsert和update的实现走的是一套逻辑。 所以性能几乎差不多。

第二个问题:
你是说在sql里面执行string类型字段的值拼接吗?

是的, sql里面拼接多个字段, 是否会产生多个临时变量

fetch prop on player 100 yiled player.name + player.age;
如果类似这样的话,不会产生临时变量。

如果我是
case
when true then “a” + “b” + “c” + “d”
end
这多个字符串的拼接过程都不会有临时变量吗?

storage 返回给graph的时候,都是返回结果,而不是各个字段的值。

额, 可能我表达不清晰,我想了解sql中字符串是如何拼接的
例如在python中
“a” + “b” + “c” + “d”的过程是首先产生“ab", 然后再执行”ab" + “c” + “d”
然后再产生“abc",在执行”abc“ + ”d", 最终才会得到”abcd“
这个过程其实产生了两个我不需要的临时变量(“ab”, “abc”)
sql中字符拼接是否也有类似的过程, 如果是, 是否考虑提供函数来减少这种消耗

nebula里面有各种expression。他会返回一个结果的。