SQL Server 2008,加入还是不加入?

Pat*_*ick 6 sql sql-server join

关于加入的一个小问题.我有一个包含大约30个字段的表,我正在考虑制作第二个表来存储其中的10个字段.然后我会加入他们的主要数据.我计划在第二个表中存储的10个字段不会直接查询,它只是第一个表中数据的一些设置.

就像是:

Table 1
Id
Data1
Data2
Data3
etc ...

Table 2
Id (same id as table one)
Settings1
Settings2
Settings3
Run Code Online (Sandbox Code Playgroud)

这是一个糟糕的解决方案?我应该只用一张桌子吗?它有多大的性能影响?表1中的所有条目也将在表2中具有条目.

小更新是有序的.大多数数据字段都是varchar类型,其中2个是text类型.如何处理索引?我的计划是索引2个数据字段,电子邮件(varchar 50)和作者(varchar 20).是的,表1中的所有记录都将在表2中有记录.大多数设置字段都是比特类型,大约80%.其余的是int和varchar之间的混合.varchars可以为null.

mwi*_*ahl 4

这称为垂直分区,是一种合法的策略。您可能出于以下原因这样做:

  • 如果某些列的访问或更改频率远高于其他列。
  • 如果您想将某些列存储在一组存储介质上,而将其他列存储在另一组存储介质上。
  • 如果您有大量不需要运行来响应某些列的更新的触发器。

通过 JOIN 访问时,性能可能会受到较小影响,但在您只需要访问一个或另一个组件表的情况下,性能可能会提高。