NULL 值对于索引非常不友好。可空列被索引后,每条记录都需要一个额外的字节,还能导致MyISAM中固定大小的索引变成可变大小的索引。
使用 NULL 值可能导致查询结果的不确定性。例如,在查询中使用 NOT IN 或 != 等负向条件时,如果存在 NULL 值,查询结果也会为空。。
对于程序员编写业务代码出现空指针的概率大大增加。
对于查询报表的情况下,NULL 值非常容易造成 SQL 编写后数据库不准确的情况。
如果列允许为 NULL,索引可能不存储 NULL 值,这可能导致查询结果不包含这些记录。
使用 COUNT() 函数时,NULL 值不参与统计,可能导致业务数据不准确。
字符串类型可以设置为空字符串,int 类型可以设置为 -1 或其他特殊标志。
5 天前