chr*_*ris 0 database-design scalability
我碰到了一条令我感到疑惑的评论:如果您使用分片方法来提高数据库的可伸缩性,是否意味着数据库已被非规范化?您可以有一个规范化的分片数据库吗?
并不互相排斥。在缩放海量数据集时,经常会使用两者,但是一个与另一个并没有太大关系。您绝对可以拥有一个分片的,标准化的数据库...或一个非标准化的,非分片的数据库。
在分片中,您只是采用给定的架构(已标准化或未标准化),并将其分布在许多物理/逻辑数据存储中。例如,这允许您让具有特定特征(例如,“ A-D”中的姓氏)的所有用户都生活在给定的数据库实例上。请注意,如何分片数据库是一个至关重要的决定,并且将高度依赖于实现。
另一方面,非规范化可以在有或没有分片数据库的情况下完成,旨在通过减少回答特定问题所需的联接/子查询来简单地进行查询。当然,那么通常您将以编程方式维护数据完整性。
一些不错的阅读: