分库分表的场景会给业务带来哪些问题?

提问者:帅平 问题分类:面试刷题
分库分表的场景会给业务带来哪些问题?
5 个回答
你以为我的心是不锈钢么
你以为我的心是不锈钢么
历史数据迁移问题
分库分表架构落地以后,首要的问题就是如何平滑的迁移历史数据,增量数据和全量数据迁移,这又是一个比较麻烦的事情
发布于:2个月前 (03-04) IP属地:未知
兮和
兮和
多数据库高效治理问题
对多个数据库以及库内大量分片表的高效治理,是非常有必要,因为像某宝这种大厂一次大促下来,订单表可能会被拆分成成千上万个t_order_n表,如果没有高效的管理方案,手动建表、排查问题是一件很恐怖的事。
发布于:2个月前 (03-04) IP属地:未知
三岁就可萌了
三岁就可萌了
全局唯一的主键问题
分库分表后数据库表的主键ID业务意义就不大了,因为无法在标识唯一一条记录,例如:多张表t_order_1、t_order_2的主键ID全部从1开始会重复,此时我们需要主动为一条记录分配一个ID,这个全局唯一的ID就叫分布式ID,发放这个ID的系统通常被叫发号器。
发布于:2个月前 (03-04) IP属地:未知
帅的被人砍
帅的被人砍
事务一致性
分库分表后由于表分布在不同库中,不可避免会带来跨库事务问题。后续会分别以阿里的Seata和MySQL的XA协议实现分布式事务,用来比较各自的优势与不足。
发布于:2个月前 (03-04) IP属地:四川省
我心已凉
我心已凉
分页、排序、跨节点联合查询问题
分页、排序、联合查询,这些看似普通,开发中使用频率较高的操作,在分库分表后却是让人非常头疼的问题。把分散在不同库中表的数据查询出来,再将所有结果进行汇总合并整理后提供给用户。
比如:我们要查询11、12月的订单数据,如果两个月的数据是分散到了不同的数据库实例,则要查询两个数据库相关的数据,在对数据合并排序、分页,过程繁琐复杂。
发布于:2个月前 (03-04) IP属地:未知
我来回答