通过rename修改库名会不会丢失数据

线上:4.0.16
场景:由于存在 TiCDC 同步数据变更,且数据来自于其他数据库的同步,在主键变更的一些场景,经常会同步一张新表,停掉 TiCDC,通过 rename 来做新旧表的替换,后再开启 TiCDC,目前未发现数据丢失。

个人理解:TiDB 使用 TiKV 作为存储,实际数据和表名关系不大,实际的记录数据是与表 id 相关联的。表名和表 id 这些信息都是在单独的元信息的 key-value 结构,rename 只是更改了元信息,表 id 不会发生变更,类似下面重命名索引的原理。


可以看一下官方的 TiDB 各个组件的原理,相信会对 TiDB 有更深入的了解。
https://learn.pingcap.com/learner/course/600003

1 个赞