之前面试遇见一题,问我 MySQL 主键 ID 将要超过 bigint 上限的时候该怎么办

2021-07-26 17:37:22 +08:00
 goodboy95
实际上面试官开始没说 bigint,只说超过上限,然后我随口问了一句“是不是连 bigint 都会超过上限?”,他说是。

然后我就有点蒙了,bigint 往上好像找不到更大的整数变量了,用 string 的话性能基本不可接受。

做分库分表的话,好像是可行,不过越想越麻烦,分出来的每个表主键 ID 需要从 1 重新开始计,这样的话感觉就需要考虑根据 ID 精准查询数据的情况,是不是需要另建一个 string 列用来存数据编号,分完表之后怎样做到新旧查询方式的无缝对接之类的,不过目前能想到的也只有这种方式了。

不知道还有人能想到什么好方案吗?
3645 次点击
所在节点    问与答
23 条回复
GeruzoniAnsasu
2021-07-27 01:17:40 +08:00
经典面试题了,以这个问题开头的就是想问分库分表,估计面试官也是从别人那学来的,但光记了个问题自己也没搞透。

面试者问 “是不是连 bigint 都会超过上限” ,面试官应该答 “你可以先考虑考虑”,然后继续正常问题流,他这「是」把自己也绕进去了,如果强势一点应该立即反问 “能举个这样的业务场景例子” 才对
x7DnVcd9bA706oWp
2021-07-27 08:46:41 +08:00
直接反问,能举个这样的场景吗?贵公司是否有?一般肯定会回答有(如果没有那考虑个 P 啊),然后直接撂下一句话别装 x 了,来之前我就了解了贵公司....
starcraft
2021-07-27 09:18:48 +08:00
让他说公司是不是有这个业务场景,自己入职是不是要处理这些。说不出来,就甩他个屁股走人,真是浪费时间。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/791877

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX