概述
今天跟一群大佬在讨论int(1)跟int(10)所占的存储空间,后来衍生到varchar和char上,也顺势分享一下MySQL 字段类型的存储需求--所占用的空间(MySQL支持多种列类型:数值类型、日期/时间类型和字符串(字符)类型。 )
数值类型存储需求
注意:int(10)这里的10指的是数值的宽度,并不是字节
日期和时间类型的存储需求
字符串类型的存储需求
注意:这里的M只是为了说明占用空间大小,在实际创建表中char(20)、varchar(20),20指的是字符而不是字节;那么字符和字节的转换要看字符集,utf-8下,1字符=3字节;gbk下,1字符=2字节。
ps:
UTF-8编码是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8节省空间。
GBK包含全部中文字符;UTF-8则包含全世界所有国家需要用到的字符。
GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)
最近时间比较忙,所以就介绍到这了,后面会剖析下varchar最大长度和text占用空间问题,感兴趣的朋友可以关注下!