使用数据库postgresql的时候,有时会遇到字段长度扩展的情况,由于之前已经有数据了,所以只能修改字段长度,不能通过删除再增加的方式。但是表里的数据已经很多了,修改字段长度会不会造成应用堵塞呢?测试验证做了个小测试,如下定义变更后的数据定义变更后,数据位置未变,即没有产生新的tuple除varchar扩容以外的定义变更,每个tuple产生一条WAL记录结论varchar扩容,varchar转text只需修改元数据,毫秒完成。其它转换需要的时间和数据量有关,1000w数据10~40秒,但是不改变数据文件,只是做检查。缩容时如果定义长度不够容纳现有数据报错不建议使用char类型,除了埋坑几乎没什么用,这一条不仅适用与PG,所有关系数据库应该都适用。
暂无评论