Skip to main content

分库分表

垂直分库

垂直分片,又称为纵向拆分,它的核心理念是专库专用

用户数据在用户mysql服务器中

订单数据在订单mysql服务器中

垂直拆分可以缓解数据量和访问量带来的问题,但无法根治。如果垂直拆分之后,表中的数据量依然超过单节点所能承载的阈值,则需要水平分片来进一步处理。

垂直分表

垂直分表适合将表中某些不常用的列,或者是占了大量空间的列拆分出去。

水平拆分

水平分片又称为横向拆分。 相对于垂直分片,它不再将数据根据业务逻辑分类,而是通过某个字段(或某几个字段)

**水平分表:**单表切分为多表后,新的表即使在同一个数据库服务器中,也可能带来可观的性能提升,如果性能能够满足业务要求,可以不拆分到多台数据库服务器,毕竟业务分库也会引入很多复杂性;

**水平分库:**如果单表拆分为多表后,单台服务器依然无法满足性能要求,那就需要将多个表分散在不同的数据库服务器中。

Apache ShardingSphere(程序级别和中间件级别)

MyCat(数据库中间件)