垂直分库
按照业务进行拆分,例如可以将商品表,订单表,用户表单独放一个数据库中
也可以说 将表单独存一个数据库中
水平分库
将一个数据库的结构复制一份,然后在存取得时候可以根据主键id % 拆分得库个数n 利用余数将数据存在指定的数据库中
,将数据分库来存
垂直分表
将表中字段较大的字段取出,单独列一张表,这个时候只需要一个主键来表示垂直分表前之间的关系
水平分表
将数据量过多的表进行水平拆分,有些表可能几百万条记录,将表的数据量通过拆表来降低数据量(指的是行数)
应用场景
数据库设计设计阶段:
①:数据库设计时就需要考虑垂直分库和垂直分表
上线后
②:当数据量增大到一定程度后,先优先考虑缓存处理以及读写分离,使用索引解决问题。如果问题没有解决,再考虑水平拆分,进行水平分库和水平分表
分库,分表的缺点:
需要解决跨节点查询(解决 分页,排序)
需要管理多个数据源