MYSQL建议列属性尽量为NOT NULL

[ 2014-07-21 09:06:00 | 作者: admin ]
字号: | |
mysql列建议列是非null的。说是如果是允许null的列,对索引会有影响(索引不会包括有NULL值)。

原文如下:

尽量避免NULL:应该指定列为NOT NULL,除非你想存储NULL。在MySQL中,含有空值的列很难进行查询优化。
因为它们使得索引、索引的统计信息以及比较运算更加复杂。你应该用0、一个特殊的值或者一个空串代替空值。

怎么理解呢?

---------------------------------------------
先看空值跟null的区别。mysql官方:

“NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.”

Mysql难以优化引用可空列查询,它会使索引、索引统计和值更加复杂。可空列需要更多的存储空间(见上面的e文),还需要mysql内部进行特殊处理。可空列被索引后,每条记录都需要一个额外的字节,还能导致MYisam 中固定大小的索引变成可变大小的索引

--------这也是《高性能mysql第二版》介绍的
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2214

这篇日志没有评论。

此日志不可发表评论。