NULL值过多的列如何影响数据库性能?

时间:2019-01-31 17:04:46

标签: database database-design database-performance

我有一个旧系统,可在数据库中存储注释。我创建了一个新系统来替换旧系统,该系统还将注释存储在数据库中。由于此处解释的时间太长,我必须将来自新系统的注释存储在另一列中,而不是在存储旧系统注释的同一列中。我试图考虑将来自新系统的注释存储在另一个表中,而不是在同一张表中创建新列,这样数据库的性能是否更健康,因为这将意味着有太多NULL价值观。这意味着通过设计,每行肯定会具有NULL值。请参阅下表,以更好地理解我的意思:

enter image description here

正如我提到的那样,在新系统中,“注释旧系统”列将从2019年开始具有NULL值。我正在尝试确定是否应该在同一张表中包含“ Comments new system”列,该列仍然强制始终具有NULL值,或者将“ Comments new system”置于单独的列中。

我试图通过在列中包含太多NULL值(根据设计的性质)始终具有NULL值,而不会损害性能。顺便说一下,那些列不是索引,所以这不是问题,但是我仍然担心列中的NULL值过多会损害性能。顺便说一下,避免这些过多的NULL值是规范化数据库的好处之一,因此我认为列中的过多NULL值通常是一个坏主意和错误的设计。谢谢。

更新1:

表中的通知,如果我在2019年有1000万行,“注释旧系统”将是一列,其中该列具有1000万个NULL值。这意味着该表在设计上将具有过多的NULL值。同样,如果在2018年或更早的时候我有2亿行,那么“ Comments new system”将有2亿行带有NULL值。同样,根据设计,这将是一个具有过多NULL值的表。这就是我所关心的,也是让我想到的是,如果重新设计它,也许要使用一个新表来存储旧的和新的系统注释,以避免带有过多NULL值的列。

0 个答案:

没有答案