mysql的varchar类型
varchar和char的使用问题
背景: 数据库团队提供的表有个标题字段存储的内容总是在20个字符左右被截断
分析: 考虑检查表结构, show create table Table_name; 查看title字段, 类型是varchar(20)
方案: 调整成varchar(200), 重跑数据
说明:
varchar 问题点:
- varchar (n) 是可变长字符串, 仅保存需要的数据和一个记录长度的字节, 不会填充数据到指定长度
- varchar 有体积限制, 最大存储65535字节
- varchar超出长度会被截断, 有警告日志打出
- mysql 版本 > 4.0 后, 在varchar中, n指的是字符个数, 无论是数字, 英文还是中文最多只能存n个
- mysql < 4.0 的版本, n 指的是可存放的字节数, 在utf8编码下varchar(20)中文最多可存储6个 (也就是20除以3)
char 问题点:
- char的长度不够时, 会用空格填充右侧直到指定长度; 被查询到会删除空格
- 当存储的数据右侧包含空格时, 使用char取出会被自动删除, 要保留空格不应该使用char类型

浙公网安备 33010602011771号