需求背景:
当数据库的数据量非常大时,水平切分和垂直拆分是两种常见的降低数据库大小,提升性能的方法。
水平切分:
将一个库(表)上的数据拆分到多个库(表)上,降低单库(表)大小。
各库的特点:
1、每个库(表)的结构都一样
2、每个库(表)的数据都不一样,没有交集
3、所有库(表)的并集是全量数据
垂直拆分:
将一个属性较多,一行数据较大的表,将不同的属性拆分到不同的表中,降低单库(表)大小。
各库的特点:
1、每个库(表)的结构都不一样
2、一般来说,每个库(表)的属性至少有一列交集,一般是主键
3、所有库(表)的并集是全量数据
垂直拆分的依据是什么:
1、将长度较短,访问频率较高的属性尽量放在一个表里,表为主表。
2、将字段较长,访问频率较低的属性尽量放在一个表里,表为扩展表。
3、经常一起访问的属性,可以放在一个表里。