传统master—slaves模式中master性能会成为瓶颈,使用将数据库的“分片”概念来解决

水平拆分|横向扩展

水平的拆分的方案,即不修改数据库表结构,通过对表中数据的拆分而达到分片的目的:

1)使用用户id做hash,分解数据库,在访问数据库的使用用户id做路由。
2)将产品订单表按照已下单和未下单区分成两个表。

一般水平拆分在查询数据库的时候可能会用到union操作。

垂直拆分|纵向扩展

即将表和表分离,或者修改表结构,按照访问的差异将某些列拆分出去。

1)将用户信息表放到一个数据库server,将产品订单表放到一个数据库server。
2)将用户信息表中主码(一般是user id)和一些常用的信息放到一个表,

将主码和不常用的信息放到另外的表,这导致一般查询数据的时候可能会用到join操作。

实际工作中更多注重数据库的横向扩展的能力

更多推荐