- 为什么bigint类型不是直接求和:
这个主要是因为 tiflash 里面,sum(int) 结果是 bigint,sum(decimal) 结果是 decimal,而 mysql/tidb 里面 sum(int) 结果是 decimal,为了保持与 mysql/tidb 的兼容性,所以加了这个 cast,理论上改造下 tiflash 里面的 sum 实现,让它类型推导的时候也返回 decimal 的话,就不用加这个 cast了,而且确实会提升一些性能。不过这个优化一直没做 - tiflash这么处理导致没法走mpp
这个应该不会,加这个 cast 不会导致走不了 mpp,你这边估计是优化器有点问题。不过具体到你这个 query 用不用mpp应该效率都差不多。你可以试试带 group by 的 query,应该能走 mpp 的