什么是垂直分表、垂直分库、水平分表、水平分库?

简介: 什么是垂直分表、垂直分库、水平分表、水平分库?

垂直分表:将一个表按照字段分成多个表,每个表存储其中一部分字段。一般会将常用的字段放到一个表中,将不常用的字段放到另一个表中。

垂直分表的优势:

1. 避免 IO 竞争减少锁表的概率。因为大的字段效率更低,第一数据量大,需要的读取时间长。第二,大字段占用的空间更大,单页内存储的行数变少,会使得 IO 操作增多。

2. 可以更好地提升热门数据的查询效率。

垂直分库:按照业务对表进行分类,部署到不同的数据库上面,不同的数据库可以放到不同的服务器上面。

垂直分库的优势:

1. 降低业务中的耦合,方便对不同的业务进行分级管理。

2. 可以提升 IO、数据库连接数、解决单机硬件资源的瓶颈问题。

垂直拆分(分库、分表)的缺点:

1. 主键出现冗余,需要管理冗余列

2. 事务的处理变得复杂

3. 仍然存在单表数据量过大的问题

水平分表:在同一个数据库内,把同一个表的数据按照一定规则拆分到多个表中。

水平分表的优势:

1. 解决了单表数据量过大的问题

2. 避免 IO 竞争并减少锁表的概率

水平分库:把同一个表的数据按照一定规则拆分到不同的数据库中,不同的数据库可以放到不同的服务器上。

水平分库的优势:

1. 解决了单库大数据量的瓶颈问题

2.IO 冲突减少,锁的竞争减少,某个数据库出现问题不影响其他数据库(可用性),提高了系统的稳定性和可用性

水平拆分(分表、分库)的缺点:

1. 分片事务一致性难以解决

2. 跨节点 JOIN 性能差,逻辑会变得复杂

3. 数据扩展难度大,不易维护

在系统设计时应根据业务耦合来确定垂直分库和垂直分表的方案,在数据访问压力不是特别大时应考虑缓存、读写分离等方法,若数据量很大,或持续增长可考虑水平分库分表,水平拆分所涉及的逻辑比较复杂,常见的方案有客户端架构和恶代理架构。

相关文章
|
2月前
|
存储 大数据 数据库
分库分表知识总结(三)之水平分表
分库分表知识总结(三)之水平分表
56 0
|
2月前
|
存储 监控 数据库
分库分表知识总结(二)之垂直分表
分库分表知识总结(二)之垂直分表
58 1
|
12月前
|
算法 Java 数据库连接
垂直分表和垂直分库
垂直分表和垂直分库
|
12月前
|
SQL 算法 Java
水平分库和水平分表
水平分库和水平分表
|
12月前
|
算法 Java 程序员
水平分库分表的策略
水平分库分表的策略
|
存储 数据处理 数据库
分表方案有哪些
分表方案有哪些
90 0
|
监控 数据库
垂直分库
垂直分库
72 0
垂直分库
|
缓存 数据库 索引
水平分表
水平分表
110 0
水平分表
|
存储 大数据 数据库
水平分库
水平分库
97 0
水平分库
|
存储 SQL 缓存
关于垂直分库,垂直分表,水平分库,水平分表
关于垂直分库,垂直分表,水平分库,水平分表
148 0
关于垂直分库,垂直分表,水平分库,水平分表