美文网首页
mysql char 和varchar的区别

mysql char 和varchar的区别

作者: 酷酷的美猴王 | 来源:发表于2020-07-13 20:09 被阅读0次

    引入原文:https://www.cnblogs.com/starfish29/p/12492028.html

    char:固定长度
    vachar:可变长度

    长度大小区别:
    CHAR(M)定义的列的长度为固定的,M取值可以为0~255之间;
    VARCHAR(M)定义的列的长度为可变长,M取值可以为0~65535之间,(VARCHAR的最大有效长度由最大行大小和使用 的字符集确定。整体最大长度是65,532字节)。

    存数据时的区别:
    CHAR值存储时,如果字符数没有达到定义的位数,会在后面用空格补全,再存入数据库中。比如定义 CHAR(10),那么不论存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充;
    VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。VARCHAR值保存时不进行填充。

    取数时:
    char 末尾空格自动去掉
    varchar末尾空格不会自动去掉

    CHAR定长,一般用于固定长度的表单提交数据存储 ;例如:身份证号,手机号,电话,密码等;
    而VARCHAR不定长。

    从空间上考虑,VARCHAR更好,从效率上考虑,CHAR更好。

    相关文章

      网友评论

          本文标题:mysql char 和varchar的区别

          本文链接:https://www.haomeiwen.com/subject/kepzcktx.html