快速上分之varchar(255)和varchar(1024)

1,365 阅读1分钟

1.困惑

    最近看一些老项目的表结构,发现数据库字段关于varchar类型长度的定义真的是千奇百怪,有varchar(20)、varchar(80)、varchar(100)、varchar(255)、varchar(256)、varchar(512)、varchar(1023)、varchar(1024)等等。

2.解惑

    varchar使用额外的1-2字节来存储值长度,列长度<=255使用1字节保存,其它情况使用2字节保存。例如varchar(30)会占用31字节存储空间,varchar(300)会占用302字节存储空间。

    varchar(256)需要两个字节来存储值长度,所以在实际的开发中除非业务明确需求,开发人员都会将字段定义为varchar(255)。

    至于varchar(1023)这个可能是部分开发人员东施效颦所产出,当然也可能是业务实际需要。根据开发人员的习惯更多的是定义为varchar(1024)。