Fork me on GitHub

mysql的varchar类型

varchar和char的使用问题

背景: 数据库团队提供的表有个标题字段存储的内容总是在20个字符左右被截断

分析: 考虑检查表结构, show create table Table_name; 查看title字段, 类型是varchar(20)

方案: 调整成varchar(200), 重跑数据

说明:

varchar 问题点:

  1. varchar (n) 是可变长字符串, 仅保存需要的数据和一个记录长度的字节, 不会填充数据到指定长度
  2. varchar 有体积限制, 最大存储65535字节
  3. varchar超出长度会被截断, 有警告日志打出
  4. mysql 版本 > 4.0 后, 在varchar中, n指的是字符个数, 无论是数字, 英文还是中文最多只能存n个
  5. mysql < 4.0 的版本, n 指的是可存放的字节数, 在utf8编码下varchar(20)中文最多可存储6个 (也就是20除以3)

char 问题点:

  1. char的长度不够时, 会用空格填充右侧直到指定长度; 被查询到会删除空格
  2. 当存储的数据右侧包含空格时, 使用char取出会被自动删除, 要保留空格不应该使用char类型
posted @ 2021-12-16 19:12  llbrh  阅读(153)  评论(0)    收藏  举报