表中大量列

时间:2018-09-11 07:25:50

标签: sql database performance mysqli

让我们假设我有一个名为“ orders”的表,并且在此表中我有100列。我正在从系统中很多地方查询该表中的数据。该表与其他表之间存在很多关系。现在,我需要添加5列,我将不经常查询这些列。我很好奇

  1. 为该5列创建附加表(由于与“ order”表相关,因此创建了6列)。

  2. 将这5列添加到表“ order”中。

1 个答案:

答案 0 :(得分:0)

由于orders表中有许多字段,并且为了防止性能问题,另一种方法可能是将orders表拆分为几个新表。这将防止性能问题,并可能使事情更有条理。要保持关系约束,请执行以下步骤:

  • 确定要移至新表并创建它们的相关字段。
  • 在新表中将foreign key设置为orders。我在这里假设您的密钥是由一个字段构成的。
  • 将新表的primaty key设置为与foreign key相同的字段。这将强制执行逻辑1:1关系:对于传给orders行,只能存在一个辅助行,而没有父orders行也不能存在任何辅助行。

使用这种方法无法实现的是,强制将辅助表中的必填字段强制存在于数据库级别。您应该自己进行管理,或将所有必填字段保留在“订单”中。