【问题标题】:Are sharding and normalization mutually exclusive?分片和规范化是相互排斥的吗?
【发布时间】:2010-11-23 11:02:18
【问题描述】:

我遇到了comment,这让我想知道:如果您使用分片方法来实现数据库可伸缩性,这是否意味着数据库已非规范化?你能有一个规范化的分片数据库吗?

【问题讨论】:

    标签: database-design scalability


    【解决方案1】:

    它们不是相互排斥的。两者都经常在扩展海量数据集时使用,但其中一个与另一个并没有太大关系。您绝对可以拥有一个分片、规范化的数据库……或非规范化、非分片的数据库。

    在分片中,您只需采用给定的架构(规范化或非规范化)并将其分布到多个物理/逻辑数据存储中。例如,这允许您让具有特定特征(例如,“A-D”中的姓氏)的所有用户都存在于给定的数据库实例上。请注意,如何对数据库进行分片是一个至关重要的决定,并且高度依赖于实现。

    另一方面,非规范化可以在有或没有分片数据库的情况下完成,旨在通过减少回答特定问题所需的连接/子查询来简化查询。当然,您通常会以编程方式维护数据完整性。

    一些不错的阅读:

    Sharding theory & practice

    Some highly-scalable database implementations 'in the wild'

    【讨论】:

      猜你喜欢
      • 2010-11-25
      • 1970-01-01
      • 2012-06-08
      • 2020-03-18
      • 2012-09-22
      • 2011-09-22
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      相关资源
      最近更新 更多