但是真没有区别么?其实是有的,mysql在处理数据的时候需要分配内存,而内存的分配都是fixed-size的,所以它只能按照最大的可能来分配,这样varchar(10)和varchar(100)就差别大了。而blob/text字段在处理时内存分配则有所不同,mysql会按照已经发现的最大长度来分配内存。如果查询时有filesort,处理是类似的。
所以字段长度只要是满足了需求,那么设置的尽可能小是没错的。
但是真没有区别么?其实是有的,mysql在处理数据的时候需要分配内存,而内存的分配都是fixed-size的,所以它只能按照最大的可能来分配,这样varchar(10)和varchar(100)就差别大了。而blob/text字段在处理时内存分配则有所不同,mysql会按照已经发现的最大长度来分配内存。如果查询时有filesort,处理是类似的。
所以字段长度只要是满足了需求,那么设置的尽可能小是没错的。