【发布时间】:2010-11-23 11:02:18
【问题描述】:
我遇到了comment,这让我想知道:如果您使用分片方法来实现数据库可伸缩性,这是否意味着数据库已非规范化?你能有一个规范化的分片数据库吗?
【问题讨论】:
标签: database-design scalability
我遇到了comment,这让我想知道:如果您使用分片方法来实现数据库可伸缩性,这是否意味着数据库已非规范化?你能有一个规范化的分片数据库吗?
【问题讨论】:
标签: database-design scalability
它们不是相互排斥的。两者都经常在扩展海量数据集时使用,但其中一个与另一个并没有太大关系。您绝对可以拥有一个分片、规范化的数据库……或非规范化、非分片的数据库。
在分片中,您只需采用给定的架构(规范化或非规范化)并将其分布到多个物理/逻辑数据存储中。例如,这允许您让具有特定特征(例如,“A-D”中的姓氏)的所有用户都存在于给定的数据库实例上。请注意,如何对数据库进行分片是一个至关重要的决定,并且高度依赖于实现。
另一方面,非规范化可以在有或没有分片数据库的情况下完成,旨在通过减少回答特定问题所需的连接/子查询来简化查询。当然,您通常会以编程方式维护数据完整性。
一些不错的阅读:
【讨论】: