可以说我正在处理大量的数据(数千或数百万条记录)。并且让我们说有一些我需要经常访问的关系。例如:MySQL - 快速访问关系
user:
id
name
phone
addresses:
street
city
state
user_id
primary (tinyint)
zip_code
不是最好的例子,但可以说我发现我总是需要抢zip_code
对于一些计算方便用户的主要地址。这个数据集有数十万个用户和地址。 ALSO在User
表中存储了zip_code
,这样我就不会减慢带有Join的这样一小段数据的查询吗?
对我来说,似乎这可能会有问题,因为你不再有规范化的数据。但是,我很好奇是否可以提高海量数据集的性能。也许,你会保持那些'重复'列与触发器同步?
只要您有适合的索引,用'addresses'表连接的性能损失应该是极小子。如果您不想通过此连接将所有查询复杂化,则可以为其创建一个视图。 – Barmar
@Barmar感谢您的信息。如果我需要的是两个或三个关系?我明白到最后,我只需做一些测试,看看它是如何发展的。但我想知道人们通常是通过“复制”数据来解决这个问题,以便它们更接近,或者他们只是处理远距离关系和多个连接 – djt
有时他们会这样做,如果依赖关系的查询非常频繁并且连接的表现是一个问题。但是,您应该首先尝试按照正常方式进行操作,并且只有在确定无法通过这种方式获得所需的性能时才添加优化。 – Barmar