在项目的任何方面都首选非规范化表吗?

Ami*_*jan -1 sql-server denormalization

在面试时,我的面试官问了我一个关于表的非规范化及其在应用程序中的使用的问题。

我猜测,我回答说,是的,可能是。作为非规范化,您将所有列都放在一个表中,您不需要任何类型的连接,因此如果给出适当的查找条件,您最大的优点将是性能。您可以在报告中使用非规范化表。

我回答的对吗?

Tom*_*Tom 6

实际上,当您必须更新数据时,性能可能会变慢,这就是为什么在 OLTP 系统中通常不默认使用非规范化。

OLAP - 报告 - 使用它们以及预先计算的聚合,因为更新通常不会实时发生,但批处理和查询性能可能是最重要的。

但是对于任何事务性的事情 - 不建议将非规范化作为应用程序开发中的默认方法。

顺便说一句,除非您报告非规范化会使您的数据访问速度变慢,因为虽然您没有连接,但表可能会更大,因此需要更多 RAM 或更多 IO 预算来回答相同的查询。

  • 看起来你的 `z` 和 `y` 键搞混了! (6认同)
  • @JonofAllTrades 是的,这很奇怪。除了 yz 按键开关之外,这个答案没有任何问题。这显然是一个错字问题,很容易修复。 (2认同)