Mysql中为什么应该尽量避免使列默认值为NULL

  在使用MySQL的过程中,踩过几次Null的坑,所以专门查了一下Mysql中关于Null的表述。

【为什么尽量避免NULL】

  • null在Mysql中是一个非常特殊的存在,MySQL在遇到它是要特殊处理,而且还需要更多的存储空间。
  • 如果查询中包含有null的列,对MySQL来说,会使得索引、索引统计和值的比较都更加复杂。
  • 当可为null的列被索引时,每个索引记录需要一个额外的字节。在MyIsam里甚至还可能导致固定大小的索引变成可变大小的索引,甚至导致索引失效。
  • 通常把null改为not null带来的性能提升比较小,但是如果计划在该列上建立索引,就应该将该列设置为not null

总结:在建立索引的列上应该设置为not null,平时也应该尽量将列设置为not null,若后期业务增加需要添加索引,就可以避免问题。

参考资料《高性能MySQL》第四章

原文地址:https://www.cnblogs.com/ymkfnuiwgij/p/8638794.html