将原本存储于单个数据库上的数据拆分到多个数据库,把原来存储在单张数据表的数据拆分到多张数据表中,实现数据切分,从而提升数据库操作性能。
分库分表的实现可以分为两种方式:垂直切分和水平切分。
水平:将数据分散到多张表,涉及分区键,
- 分库:每个库结构一样,数据不一样,没有交集。库多了可以缓解io和cpu压力
- 分表:每个表结构一样,数据不一样,没有交集。表数量减少可以提高sql执行效率、减轻cpu压力
垂直:将字段拆分为多张表,需要一定的重构
- 分库:每个库结构、数据都不一样,所有库的并集为全量数据
- 分表:每个表结构、数据不一样,至少有一列交集,用于关联数据,所有表的并集为全量数据