引言 传统企业级应用一般采取单台数据库,吞吐所有应用的读写,随着互联网的高速发展,以及微服务架构越来越普及,往往采用分库分表来支撑高速增长的大量业务数据吞吐.分库分表主要有两种方式:水平分表和垂直分库. 垂直分库即基于业务层面,将不同业务数据存储到不同的数据库中. 水平分表即把一个表的数据按照一定路由规则,路由到不同的数据库,通常采用按照某个字段如ID作为路由因子,路由到不同库. 架构演变 历史架构 我们改造之前,数据库层,基于业务做了垂直分库,某些数据量大的业务比如用户账户.账务.订单和优惠券