数据库分库分表
前言
当数据量特别大的时候,我们需要进行分库分表操作,提高数据库的读写效率。
数据库分库分表拆分模式分为 水平拆分和 垂直拆分。
一、垂直拆分
数据库垂直拆分是指将数据库按业务不同,拆分成不同的数据库,比如订单数据库,用户数据库,配置中心数据库等。各个数据库之间业务相互独立。要取对应业务的数据,通过接口进行。微服务架构中,各个子服务就可以使用自己的数据库。
优点:
1. 拆分后业务清晰,拆分规则明确。
2. 系统之间整合或扩展容易。
3. 数据维护简单。
缺点:
1. 部分业务表无法join,只能通过接口方式解决,提高了系统复杂度。
2. 受每种业务不同的限制存在单库性能瓶颈,不易数据扩展跟性能提高。
3. 事务处理复杂。
垂直拆分,因为各业务数据库单独处理,数据库事务也是单独处理,存在分布式事务问题。分布式事务也有了对应的解决方案,另外的文章中介绍。
二、水平拆分
数据库水