扩充varchar数据内容会导致重写该表其后所有内容吗?

要是存储varchar数据,首先肯定不可能在文件里马上分给varchar的全部空间,比如声明varchar(100),然后插入a,这时好像只会分配20字节数据,当varchar内容扩充的时候在扩充

那假设一个表,逻辑上的,占了2g的空间,那么如果是要将第一行的varchar(100)中的数据'a',扩充至100个a,那么是不是剩下的所有数据都要往后移动?

如果要的话那这样的移动是不是代价很高?

作者: zsdzzsdz   发布时间: 2011-05-27

数据又不是按这个字段顺序存储的,如果扩充的话,不一定需要重新分配页,如果需要的话也只是把第一行所在的页拆了

作者: starzhestarzhe   发布时间: 2011-05-29