0

我有一个大约有 40 列的数据库表(称为 Master)。其中 11 个始终包含大约每 100.000 行的常量值。

这种结构的缺点是,当我需要更新这 11 列值时,我需要去更新所有 100.000 行。

我可以将所有常量数据移动到不同的表中,并且只在一个地方更新一次,而不是 100.000 个地方。

但是,如果我这样做,当我显示字段时,我需要在两个表之间创建 INNER JOIN,我知道这会使 SELECT 语句变慢。

我必须说更新列的发生比读取(显示)数据要少。

您如何建议我应该将数据存储在数据库中以获得最佳性能?

谢谢

4

1 回答 1

0

我会将 11 列放在一个单独的表中

您正在用 11 个额外的静态值使主表膨胀:这会影响查询的密度(每 8k 页的行数)和内存占用。

也就是说,如果您拆分静态数据,您只需为主表读取和处理更少的数据

于 2013-04-22T15:41:26.643 回答