char 定长,最大可存储255个字节,指定长度,不满足使用空格填充。
varchar 不定长,最大可存储65525个字节。
由此可知,当存储的内容超过255个字节的时候,需要2个字节来存储长度,小于255的时候,只需要一个字节来存储长度。
其中65535的存储内容,是指row的存储空间。当列超过65535的时候,mysql会抛错,如下图所示
可变索引的长度:
索引长度 inodb从 768-3207
myisam:1000
如果mysql启用了innodb_large_prefix选项,则前缀最长可为3072字节
参考资料:
https://dev.mysql.com/doc/refman/8.0/en/char.html
https://dev.mysql.com/doc/refman/8.0/en/column-count-limit.html
https://dev.mysql.com/doc/refman/5.6/en/create-index.html