Php null是否占用mysql中的内存

Php null是否占用mysql中的内存,php,mysql,Php,Mysql,我创建了一个表并推送了10000行: //id = int(10) not null auto_increment // test = varchar(1) id | test --------- 1 | a 2 | a 3 | a 4 | a ... 下载这个sql文件-他的体重约为0.1m 然后我添加了一个列test_2(varchar(1)),默认为NULL: sql后文件重量=+30% 空值是否占用内存?如果字段是固定宽度,则存储空值占用的空间与任何其他值相同-字段的

我创建了一个表并推送了10000行:

//id = int(10) not null auto_increment
// test = varchar(1) 
id | test
---------
 1 |  a
 2 |  a
 3 |  a
 4 |  a
...
下载这个sql文件-他的体重约为0.1m

然后我添加了一个列test_2(varchar(1)),默认为NULL:

sql后文件重量=+30%


空值是否占用内存?

如果字段是固定宽度,则存储空值占用的空间与任何其他值相同-字段的宽度

如果字段宽度可变,则空值不占用任何空间

除了存储空值所需的空间之外,还存在具有可空列的开销。对于每一行,每个可空列使用一位来标记该列的值是否为空。无论列的长度是固定的还是可变的,都是如此

请看这个


如果字段为固定宽度,则存储NULL将占用与任何其他值相同的空间-字段的宽度

如果字段宽度可变,则空值不占用任何空间

除了存储空值所需的空间之外,还存在具有可空列的开销。对于每一行,每个可空列使用一位来标记该列的值是否为空。无论列的长度是固定的还是可变的,都是如此

请看这个


“除了存储所需的空间”是什么意思?这意味着不是varchar(100),而是date,或者int(不带值)?定义一个值,其中值为null,或者使用任何一个位。对于varchar null,需要1位,但在char(4)中,如果这样定义,则意味着null值需要char中的4个字节……因为char是固定大小,varchar是可变大小……为什么是1位?因为对于define来说,vlaue是空的,或者它们必须需要1位,这意味着“除了存储所需的空间之外”是什么?这意味着不是varchar(100),而是date,或者int(不带值)?定义一个值,其中值为null,或者使用任何一个位。对于varchar null,需要1位,但在char(4)中,如果这样定义,则意味着null值需要char中的4个字节……因为char是固定大小,varchar是可变大小……为什么是1位?因为对于define,vlaue为null,或者它们必须需要1位