在MySQL中使用NULL-able字段的性能影响

时间:2011-01-12 15:10:47

标签: mysql database performance null

有时可以表示缺席值(不会丢失函数)而无需使用可以使用NULL的列,例如:

  • 引用另一个表的AUTO_INCREMENT行ID的列中的零整数
  • 日期值无效(0000-00-00)
  • 零时间戳值
  • 空字符串

另一方面,根据Ted Codd的关系模型,NULL是缺少数据的标记。我总是觉得做得更好“正确的方法”,MySQL支持它和相关的3值逻辑,为什么不呢?

几年前,我正在解决性能问题,发现只需将NOT NULL添加到列定义中即可解决问题。该列已编入索引,但我不记得其他细节。从那时起,当有替代方法时,我已经避免使用NULL-able列。

但是我一直困扰着我,因为我没有正确理解在MySQL表中允许NULL的性能影响。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

每列节省1位。 http://dev.mysql.com/doc/refman/5.0/en/data-size.html 看起来并不多,但是数百万行开始产生影响