开发者社区> 问答> 正文

数据库垂直拆分和水平拆分是什么意思?有什么区别?

数据库垂直拆分和水平拆分是什么意思?有什么区别?

展开
收起
游客i2i5j3xkpqrwe 2023-03-24 10:46:20 484 0
3 条回答
写回答
取消 提交回答
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    数据库垂直拆分和水平拆分是两种不同的数据库拆分策略,区别在于:

    • 垂直拆分:将一个大的数据库按照业务逻辑分成不同的数据库,每个数据库只存储一部分数据,每个数据库的表结构可能也不同。垂直拆分通常发生在数据量很大但是表之间关联性不强的场景中。垂直拆分的好处是可以将不同的业务分开处理,避免单个数据库变得过于庞大和复杂,提高了数据库的可维护性。缺点是需要应用程序根据业务逻辑访问多个不同的数据库,增加了应用程序的复杂度。

    • 水平拆分:将一个大的数据库中的数据按照某种规则拆分成多个数据库,每个数据库中存储相同的表结构,但是存储的数据不同。水平拆分通常发生在单表数据量很大的场景中。水平拆分的好处是可以将单表数据分散到不同的数据库中,减少单个数据库的负载压力,提高了数据库的可伸缩性和可用性。缺点是需要应用程序进行数据分片访问和聚合,增加了应用程序的复杂度。

    垂直拆分是按照业务逻辑将数据库分成多个部分,水平拆分是按照数据规则将数据分散到多个数据库中。在实际应用中,一般需要根据具体的业务场景选择合适的拆分策略。

    2023-03-24 15:01:38
    赞同 展开评论 打赏
  • 垂直拆分是拆分列,提高查询效率,不过不合理的拆分极其可能造成使用性能变差;而水平拆分是按照数据拆分,避免数据库瓶颈,不过需要进行分布式管理,会有跨区访问的问题

    2023-03-24 13:19:26
    赞同 展开评论 打赏
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    一个数据库由很多表的构成,每个表对应着不同的业务,垂直切分是指按照业务将表进行分类,分布到不同的数据库上面,这样也就将数据或者说压力分担到不同的库上面。

    采用垂直拆分优点:1. 拆分后业务清晰,拆分规则明确。2. 系统之间整合或扩展容易。3. 数据维护简单。缺点:1. 部分业务表无法join,只能通过接口方式解决,提高了系统复杂度。2. 受每种业务不同的限制存在单库性能瓶颈,不易数据扩展跟性能提高。3. 事务处理复杂。

    水平拆分的典型场景就是分库分表。

    垂直拆分后遇到单机瓶颈,可以使用水平拆分。相对于垂直拆分的区别是:垂直拆分是把不同的表拆到不同的数据库中,而水平拆分是把同一个表拆到不同的数据库中。

    相对于垂直拆分,水平拆分不是将表的数据做分类,而是按照某个字段的某种规则来分散到多个库之中,每个表中包含一部分数据。简单来说,我们可以将数据的水平切分理解为是按照数据行的切分,就是将表中 的某些行切分到一个数据库,而另外的某些行又切分到其他的数据库中。

    2023-03-24 11:45:04
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载