MySQL 中 CHAR 和 VARCHAR M保存长度的问题
手册里面写着CHAR(0~255),VARCHAR(0~65535),是意昧着VARCHAR可以存储的字符比CHAR多?CHAR最多只可以存储255个字符而VARCHAR...
手册里面写着CHAR(0~255),VARCHAR(0~65535),是意昧着VARCHAR可以存储的字符比CHAR多?CHAR最多只可以存储255个字符而VARCHAR可以存储65535字符?求详细解释
展开
1个回答
展开全部
你的理解是正确的,VARCHAR比CHAR可以存更多的内容。
此外,CHAR是定长的,例如你定义的字段类型是CHAR(32),那么无论你存1个还是10个字符,数据库都是分配32个字符的空间。
而VARCHAR是变长的,如果定义VARCHAR(32)的字段,存1个字符就占1个空间、存10个就占10个空间,不浪费多余空间。
定长的好处是修改方便,查询方便,变长的修改很麻烦,当然这是指系统内部。
备注:以上举例的所说的占用空间是理论值,事实上还需要分配NULL标志空间、数据长度空间,至少要多1~2字节。
此外,CHAR是定长的,例如你定义的字段类型是CHAR(32),那么无论你存1个还是10个字符,数据库都是分配32个字符的空间。
而VARCHAR是变长的,如果定义VARCHAR(32)的字段,存1个字符就占1个空间、存10个就占10个空间,不浪费多余空间。
定长的好处是修改方便,查询方便,变长的修改很麻烦,当然这是指系统内部。
备注:以上举例的所说的占用空间是理论值,事实上还需要分配NULL标志空间、数据长度空间,至少要多1~2字节。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询