扩充varchar数据内容会导致重写该表其后所有内容吗?
要是存储varchar数据,首先肯定不可能在文件里马上分给varchar的全部空间,比如声明varchar(100),然后插入a,这时好像只会分配20字节数据,当varchar内容扩充的时候在扩充
那假设一个表,逻辑上的,占了2g的空间,那么如果是要将第一行的varchar(100)中的数据'a',扩充至100个a,那么是不是剩下的所有数据都要往后移动?
如果要的话那这样的移动是不是代价很高?
那假设一个表,逻辑上的,占了2g的空间,那么如果是要将第一行的varchar(100)中的数据'a',扩充至100个a,那么是不是剩下的所有数据都要往后移动?
如果要的话那这样的移动是不是代价很高?
作者: zsdzzsdz 发布时间: 2011-05-27
数据又不是按这个字段顺序存储的,如果扩充的话,不一定需要重新分配页,如果需要的话也只是把第一行所在的页拆了
作者: starzhestarzhe 发布时间: 2011-05-29