Skip to content

面试速答(先看这里)

**一句话结论:**1、id会重复,每张表都用自己的自增id,不用全局分布式id,就会导致id的重复,如果id重复了,那么全局查询的实际,就没办用id唯一定位一个数据。

60秒标准回答:

其实没啥不行的,只要你能接受以下几个问题就行。(狗头)

1、id会重复,每张表都用自己的自增id,不用全局分布式id,就会导致id的重复,如果id重复了,那么全局查询的实际,就没办用id唯一定位一个数据。尤其是很多需要做数据汇总、统计的场景,会把数据同步到离线表,那么就会导致数据主键冲突,无法同步

2、无法支持二次分表,每张表自己做自增,在单表中是唯一了,不冲突了,但是如果后面如果要重新分表,那么就会导致表中出现重复id的情况,这是一定有问题的

**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点

回答主线:

  • **要点1:**其实没啥不行的,只要你能接受以下几个问题就行。
  • **要点2:**2、无法支持二次分表,每张表自己做自增,在单表中是唯一了,不冲突了,但是如果后面如果要重新分表,那么就会导致表中出现重复id的情况,这是一定有问题的。
  • **要点3:**所以,一般做过了分库分表之后,都会用一个分布式ID来做主键id、或者业务唯一号,要不然就会出现以上两个问题,而且这两个问题基本上可以认为是无法接受的。

加分表达:

  • 其实没啥不行的,只要你能接受以下几个问题就行。
  • (狗头) 1、id会重复,每张表都用自己的自增id,不用全局分布式id,就会导致id的重复,如果id重复了,那么全局查询的实际,就没办用id唯一定位一个数据。
  • 尤其是很多需要做数据汇总、统计的场景,会把数据同步到离线表,那么就会导致数据主键冲突,无法同步。

追问准备:

  • 如果线上出现异常,你会如何定位、验证并规避?

典型回答 ​

其实没啥不行的,只要你能接受以下几个问题就行。(狗头)

1、id会重复,每张表都用自己的自增id,不用全局分布式id,就会导致id的重复,如果id重复了,那么全局查询的实际,就没办用id唯一定位一个数据。尤其是很多需要做数据汇总、统计的场景,会把数据同步到离线表,那么就会导致数据主键冲突,无法同步。

2、无法支持二次分表,每张表自己做自增,在单表中是唯一了,不冲突了,但是如果后面如果要重新分表,那么就会导致表中出现重复id的情况,这是一定有问题的。

所以,一般做过了分库分表之后,都会用一个分布式ID来做主键id、或者业务唯一号,要不然就会出现以上两个问题,而且这两个问题基本上可以认为是无法接受的。

📄 ✅分表后全局ID如何生成?

打开文档:✅分表后全局ID如何生成?