云数据库 GaussDB-特性使用约束:与串行执行结果可能不兼容

时间:2023-11-01 16:20:08

与串行执行结果可能不兼容

并行执行的执行结果可能存在与串行执行不兼容的情况,主要表现在:

  • 错误或者告警提示次数可能会增多

    对于在串行执行中出现错误/告警提示的查询,在并行执行情况下,每个工作线程可能都会提示错误/告警,导致总体错误/告警提示数会增多。

  • 精度问题

    并行执行的执行过程中,当select的内容是函数类型时,会比非并行执行多出中间结果的存储过程,可能会导致浮点部分精度差别,导致最终结果有细微的差别。

  • 截断问题

    并行执行的执行过程中,当select的内容是函数类型时,会比非并行执行多出中间结果的存储过程。在这个过程中,需要缓存函数的计算结果,可能出现截断(一般是类型转换导致的,例如浮点数类型转为字符串等), 导致最终结果与串行结果有差别。

  • 结果集顺序差别

    因为是多个工作线程执行查询,返回的结果集可能与非并行执行顺序不一致。在具有LIMIT查询的情况下,更容易出现与串行结果顺序不同的现象。对于不可见字符,当MySQL判断多个不可见字符相等时,可能会出现结果集顺序不同,或者group by字段不同的现象。

  • union all结果集差别

    union all会忽略其中的排序算子,并行执行下返回的结果集顺序可能与非并行不一致。在有limit查询的情况下,会出现结果集不同的现象。

support.huaweicloud.com/usermanual-gaussdb/gaussdb_05_0124.html