mysql之char、varchar、text对比
程序员文章站
2023-01-01 11:51:15
mysql5.0.3以后,n都表示字符数(varchar(n)) 检索效率 char varchar text 当varchar长度超过255之后,跟text一致,但是设置varchar(n)的话,可以防止恶意使用text撑爆数据库 |类型名称|说明|存储需求| | | | | |CHAR ......
mysql5.0.3以后,n都表示字符数(varchar(n))
- 检索效率 char > varchar > text
- 当varchar长度超过255之后,跟text一致,但是设置varchar(n)的话,可以防止恶意使用text撑爆数据库
类型名称 | 说明 | 存储需求 |
---|---|---|
char < m | 固定长度非二进制字符串 | m字节,1 <= m <= 255 |
varchar(m) | 变长非二进制字符串 | l + 1字节,在此,l <= m和1 <= m <= 255 |
varchar(m) | 变长非二进制字符串 | l + 2字节,在此,l <= m和255 < m <= 65535 |
text | 小的非二进制字符串 | l + 2字节,在此l < 2^16 |
char
- 查询速度:char最快
- 最大长度:255个字符,utf-8编码的话,占用255 * 3个字节
- 占用空间:n
- 其他:
- 在获取数据出来之后,一定要记得trim空格,因为不足char(n)的长度,会自动填充空格
- 因为定长的char不容易产生碎片,所以char比varchar在空间上也更有效率
varchar
- 查询速度:varchar次之
- 最大长度:65535个字节
- 占用空间:实际空间 + 1,会使用1-3个字节来存储长度,如果整体长度在0-255bytes之间,长度使用1个字节表示,如果长度在255以上,那么就是2个字节,varchar(10)需要11个存储空间,varchar(1001)需要1002个存储空间
- 其他
- 官方手册定义的varchar最大长度65535指的是所有varchar列长的总和
text
- 查询速度:text最慢
- 最大长度:跟varchar基本相同,保存65535个字符
- 占用空间:存储2个字节长度
上一篇: 花鸡蛋野菜怎么做
下一篇: Flask 理论知识汇总