如果我在表中增加一个字段varchar(100),但是只有极少数的记录这个字段有值,这样的话,数据库文件会不会变大很多。
意思就是,加了这个字段,是不是所有的记录的长度都加了这个字段的长度?或者说是只是有值的才增加值的长度?如:10笔记录中,只有一笔记录这个字段有值,那其他9条记录中是否在数据库中占用100的空间?不知道我说明白没有
意思就是,加了这个字段,是不是所有的记录的长度都加了这个字段的长度?或者说是只是有值的才增加值的长度?如:10笔记录中,只有一笔记录这个字段有值,那其他9条记录中是否在数据库中占用100的空间?不知道我说明白没有
CHAR是定长的,不管实际多少,后面都补空格,补全到定义的长度。
我觉得如果是INNODB的,而且这个字段是主键字段,那么在后面修改了这个字段的值,物理存储空间也是连续的,在修改的时候会移动其他记录,空出位置个新值。INNODB是按主键索引聚集的。理解不深,恳请狼头哥斧正。