【MySQL 笔试面试题11】MySQL中表的字段为什么要定义为NOT NULL?
(1)索引性能不好 Mysql难以优化引用可空列查询,它会使索引、索引统计和值更加复杂。可空列需要更多的存储空间,还需要mysql内部进行特殊处理。可空列被索引后,每条记录都需要一个额外的字节,还能导致MYisam 中固定大小的索引变成可变大小的索引。 (2)查询会出现一些不可预料的结果
举例:
1> 表结构如下
create table table_2 ( `id` INT (11) NOT NULL, name varchar(20) NOT NULL )
2> 表中测试数据
查询结果为2,但是实际上是有四条数据的。
|
id |
name |
|---|---|
|
1 |
孤独烟 |
|
3 |
null |
|
5 |
肥朝 |
|
7 |
null |
select count(name) from table_2;
浙公网安备 33010602011771号