MySQL中char与varchar的区别
char和varchar的区别
| 行为 | char类型 | varchar类型 |
|---|---|---|
| 最大长度 | 255字符 | 65535字符 |
| 是否定长 | 定长,不足的部分用空格填充 | 不定长,实际长度根据存储的内容确定 |
| 空间使用 | 会浪费多余的空间 | 更加节省 |
| 查找效率 | 高 | 低 |
示例
关键区别说明:
- 默认行为:MySQL查询时会自动去除CHAR字段尾部空格。
- 存储机制:CHAR(5)始终占用5字符空间,未使用部分以空格填充,而VARCHAR仅存储实际内容。
-- 设置PAD_CHAR_TO_FULL_LENGTH可查看char类型的实际长度
set sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';
create table test_char_varchar(col1 char(5), col2 varchar(5));
insert into test_char_varchar values('abc', 'abc');
select length(col1), length(col2) from test_char_varchar;
drop table test_char_varchar;
浙公网安备 33010602011771号