有人能用更详细的方式解释一下吗?特别是,如果能看到没有“高阶重复”和“关键字”这两个术语的描述(这些术语似乎没有解释),那将对我有很大帮助。
表的设计必须考虑到高阶重复的可能性,例如无限的关键字存储在大量的行中。在m行中存储n个关键字不是一个好的表设计。为了更好的设计,您应该重新考虑表模式,仍然保持查询优先。
以下是摘录:https://docs.datastax.com/en/archived/cql/3.3/cql/ddl/datamodelinganalysis.html
我理解在多个表中具有相同数据的概念,以减少以编程方式连接多个表中数据的需要。这两个被引用的句子是否强调了一些重复程度有问题的场景?
谢谢!
1条答案
按热度按时间mmvthczy1#
我相信这些文档基本上是在试图推动去规范化可以做什么。他们以骑车人的名字为例。当它被非规范化时,它可能出现在多个行中(与关系结构不同)。由于冗余/重复/非规范化,您的存储消耗增长速度可能比使用关系数据库快得多。
我相信他们所指的另一件事是,如果你有一些东西,比如说,类别(本质上是“list”类型的列值),其中所有行都有许多类别(可能有无限个类别),由于重复,最终可能会产生大量数据,这可能会影响查询响应和空间消耗。您应该仔细考虑设计,以确定查询所需的类别频率。如果不是经常这样,也许可以使用更好的表设计(例如,将列表拆分为一个单独的表,以便后续查询能够满足需要它的小查询集)。简而言之,我们的想法是在实现之前暂时暂停,以确保您的设计在分布式/复制环境中有意义。
这是我从文件中收集到的。
-吉姆