大数据面试-Hive
char和varchar的区别?
- char类型的长度是固定的,不足的部分用隐藏空格填充,varchar的长度是可变的。
这就表示,存储字符串’abc’,使用char(10),表示存储的字符将占10个字节(包括7个空字符);
使用varchar(10),则表示只占3个字节,10是最大值,当存储的字符小于10时,按照实际的长度存储。 - char最大长度是255字符;varchar最大长度是65535个字节。
- 存储效率上:char即使字符串较短也占用完整的 n 个字符的存储空间,有可能浪费存储。varchar:仅占用实际字符串长度的存储空间,更加节省。
- char类型的效率比varchar的效率稍高。
- 使用 char 类型来存储固定长度的字符串,以便于优化存储和查询效率。使用 varchar 类型来存储长度可变的字符串,以节省存储空间并提高灵活性。