在我的工作中,我们有伪标准创建一个表来保存实体的"标准"信息,第二个表名为'TableNameDetails',它包含可选的数据元素.平均而言,主表中的每一行都包含大约8-10个细节行.
我的问题是:这对于在主表上添加这些细节作为额外的可空列有什么样的性能影响?
8-10个细节行或8-10个细节列?
如果它的行,那么你将混合苹果和橙子作为一对多的关系不能变成列.
如果是列,那么你正在谈论垂直分区.对于大型和超大型表,运动很少引用的列进入加时赛或详细信息表(即列垂直分区为"热"和"冷"表)可以有显著和事件巨大的性能优势.较窄的表意味着每页数据密度更高,反过来意味着频繁查询所需的页面更少,IO更少,缓存效率更高,所有优点都更好.
里程可能会有所不同,具体取决于"详细信息"列的平均宽度以及"很少"访问列的方式.