该表应该分成两部分吗?

时间:2011-03-29 23:14:50

标签: mysql database-design optimization performance

我有一个有11列的表,现在大多数时候这个表上的三列都是空的,但是如果我分成两列,每个表有更多的查询。你的建议是什么

3 个答案:

答案 0 :(得分:2)

还有许多其他变量需要考虑。一些想到的是:

  • 桌子有多大?
  • 通常为空的三列有多大?
  • 哪些类型的查询使用该表?
  • 列中包含哪些类型的数据?例如,如果它属于查找表,那么避免重复数据可能是有意义的。这个问题不一定与问题密切相关,但值得考虑。
  • 字段是否已编入索引(或在任何索引中使用)?如果是这样,它可能会增加INSERTS和DELETES的成本(如果它们是空的并且在UPDATE操作期间保持不变则不是那么多)。

但总的来说,我会说将它作为单个表格保留是可以的。 11列不是那么多。因此,除非表格非常大(相对术语)并且空间非常宝贵,否则单个表格的简单性是个好主意,特别是如果数据在逻辑上属于表格中。

答案 1 :(得分:1)

如果您主要关心的是速度,那么将表保持在一起会为您提供更便宜的SELECT查询,因为您不会使用JOIN。

答案 2 :(得分:1)

就我个人而言,我认为只有11列,无论哪种方式,你的表现都会微乎其微。我认为这是个人偏好。