mysql char 与 varchar 的区别

1 .简述 :

CHAR 类型:

CHAR 类型:CHAR 是固定长度字符数据类型,当你创建一个 CHAR 字段时,MySQL会分配固定长度的空间,根据字符集,这个长度可能是1到255之间的任何值。CHAR

字段存储固定长度的字符串,如果数据不足指定的长度,MySQL会在其后添加空格以达到指定的长度。

VARCHAR 类型:

VARCHAR 类型:VARCHAR 是可变长度字符数据类型,当你创建一个 VARCHAR 字段时,MySQL会根据实际需要分配长度,这个长度可以是1到65535之间的任何值。VARCHAR

字段存储可变长度的字符串,所以它只会使用必要的空间。

2 .存储和检索方面的主要区别:

CHAR 列的长度固定,不管是否存储了数据,VARCHAR 列的长度是可变的。
CHAR 的存储效率高,VARCHAR 的存储效率较低。
CHAR 类型的字段长度固定,最大长度是255个字符;VARCHAR 类型的字段长度可变,最大长度是65535个字符。
CHAR 列长度固定为创建表时声明的长度, 长度值范围是 1 到 255 当 CHAR 值被存储时, 它们被 用空格填充到特定长度, 检索 CHAR 值时需删除尾随空格。

3 . 解决方案:

如果你知道你的字段将会有固定的长度,并且长度不会超过255,你可以使用 CHAR 类型。
如果你的字段长度可变,并且最大长度不会超过65535,你可以使用 VARCHAR 类型。
如果你的字段长度可变,并且最大长度可能超过65535,你可以使用 TEXT 或 BLOB 类型。
例子

4 例子:

CREATE TABLE example (
    char_column CHAR(10),
    varchar_column VARCHAR(10)
);


INSERT INTO example (char_column, varchar_column) VALUES ('test', 'test');

SELECT CONCAT(char_column, ' '), CONCAT(varchar_column, ' ') FROM example;

在这个例子中,char_column 将显示为 'test ',varchar_column 将显示为 ‘test’,因为 CHAR 类型字段后添加了空格以达到指定的长度,而 VARCHAR 类型字段则只存储了实际的字符串 ‘test’。
上一篇:SpringBoot—@ConditionalOnBean与@ConditionalOnClass-二、@ConditionalOnBean示例


下一篇:获取kafka中topic偏移量和消费偏移量