字符串类型存储要求
https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
char 和 varchar
- 他们的 (number) 表示字符数量
- char(number)
- 0-255
- 插入时值不足 number,则右填充 space 直到占满
- 检索时候,会对尾部进行 trim,除非开启 PAD_CHAR_TO_FULL_LENGTH 模式
- varchar(number)
- 0-65535
- 存储占用
- 额外字节作为前缀,当 值占用 <= 255 byte 时,使用一个前缀字节(1 byte),超过时,使用两个前缀字节(2 byte)
- 值的实际占用为 number 字符集编码的单位长度,比如 utfbmb4 就是 number 4 byte
- char(number)
- 使用 strict SQL 模式的话,当 number 超过他们的长度限制,会截取字符且报错