‘High Performance MySQL’ 虽然说了 “Avoid NULL if possible”,但也说了
引用
“The performance improvement from changing NULL to NOT NULL is usually small”.
我针对这个做了下benchmarking. 性能差别确实很小。请看这里的末尾部分。
业务上说,有很多字段确实既要索引,又可能为空。对于这种情况,该NULLABLE就NULLABLE吧,没必要为了一点点性能上的收益而使用各种默认值给代码留坑。