原来以为是由优先级的概念,如果有主键,唯一索引更新就不会进行拆分,但看代码目测不是这样,是主键或唯一索引更新都会进行拆分。
[image]
kafka 这种拆分可以认为是要解决第 2 个问题,key 变更会被拆分到两个 partition,但 key 默认是主键,如果存在主键,此时变更应该还是在一个 partition 上,不会分发到两个 partition 上。
因此理论上,存在主键的 mq 数据源,唯一索引的更新可以考虑不被拆分。
正常业务主键都是自己生成的分布式 ID,或者 TiDB 的随机 id,可能会发生唯一索引变更,不会发生主键变更。