MySQL: 被索引的字段是否有空值对性能影响不大

‘High Performance MySQL’ 虽然说了  “Avoid NULL if possible”,但也说了

引用
“The performance improvement from changing NULL to NOT NULL is usually small”.

我针对这个做了下benchmarking. 性能差别确实很小。请看这里的末尾部分。

业务上说,有很多字段确实既要索引,又可能为空。对于这种情况,该NULLABLE就NULLABLE吧,没必要为了一点点性能上的收益而使用各种默认值给代码留坑。

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.