灵活分库分表 面试的时候这么说 加分!
亮点
下面介绍的是循序渐进的思路,面试的时候建议说下技术演进方案的思考:下面提到这些都有考虑到,最终结合你们的场景和需求,选择了最后这种方式,表述清楚设计和思考的过程。
背景
粉丝提问:
对于分库分表这块,面试的时候可能要结合业务逻辑去举例子。
我在下面大致写了一下数据的特性,因为之前是写入serverless的数据库所以这块没有去做分库分表,所以想请教一下方案。
场景
比如有一个“设备执行记录表”,这个表数据的特点如下:
一天中存在早高峰和晚高峰(早上8点,晚上7点 —-对应起床和下班的时间) 整点和半点的时候存在极大值 数据是insert多,query少 假设一天产生100万条数据,早晚高峰分别产生20万,15万条数据
提问
如何设计分库分表?
目前所能想到的方法是按照时间区间去分,比如把一天拆分成24份。
我的思路是否可行?请问还有没有更好的思路?
解答
“按照时间区间去分,比如把一天拆分成24份。”, 这个思路基本可行,我再给你一些其他进阶思路。
也可以按照高峰时段来分库分表:比如将早高峰和晚高峰的数据分别存储在不同的数据库表中,非高峰时段的数据存储在不同的数据表中。这样就能避免低效的分库分表,比如按小时来分,后半夜基本数据很小,甚至没有,对吧。
还有另外一个思路:就是按数据量来分,定好规则,并且这个规则写在配置文件中,统一做管理,也方便灵活配置。
例如将每天产生的数据量较大的时间段单独存储在一个数据库表中,而数据量较小的时间段可以合并存储在另一个数据库表中,以便更好地管理和查询数据。比如直接以20万条数据为分表依据,达到就创建新表。而不是严格的以8点~9点一个表,晚上7点~8点一个表,其他时间一个表。这种更合理,且可控。
上面这些也是循序渐进的思路,面试的时候也可以说下技术方案的思考:这些都有考虑到,最终结合你们的场景和需求,选择了最后这种方式,表述清楚设计和思考的过程。
早日上岸!
我们搞了一个免费的面试真题共享群,互通有无,一起刷题进步。
没准能让你能刷到自己意向公司的最新面试题呢。
感兴趣的朋友们可以加我微信:wangzhongyang1993,备注:面试群。
点击下方文章,看看他们是怎么找到好工作的!
还有最新鲜的腾讯面经,不要错过哦!