MySQL - 快速访问关系

时间:2016-02-22 22:09:27

标签: mysql database

让我们说我正在处理大量数据(成千上万的数据,或者可能是一百万个+记录)。并且假设我需要经常访问一些关系。例如:

user:
  id
  name
  phone

addresses:
  street
  city
  state
  user_id
  primary (tinyint)
  zip_code

不是最好的例子,但我们发现为了某些计算目的,我总是需要抓取用户主要地址的zip_code。此数据集包含数十万个用户和地址。 ALSO zip_code存储在User表上是否有意义,这样我就不会因为这么小的一小段数据而加速查询?

对我而言,似乎这可能会有问题,因为您不再拥有标准化数据。但是,我很好奇是否提高海量数据集的性能可能是有益的。也许,你会让这些“重复”列与触发器同步吗?

1 个答案:

答案 0 :(得分:-2)

如果用户只能拥有一个地址,那么您的架构不会正常化。如果用户可以拥有零个或一个地址,则可以将此实现为单个表,但如果用户可以拥有多个地址,则用户不能拥有单个邮政编码属性。即你的问题没有实际意义。

(顺便说一句,不是每个人都会认为百万+记录“大量”)