美文网首页
MYSQL中char和varchar的区别

MYSQL中char和varchar的区别

作者: 慕辙 | 来源:发表于2019-04-06 12:19 被阅读0次

    在mysql数据库中,char和varchar都是常用的字符型数据类型。但是不论是结构还是数据的保存上看,两者还是有很大的差别。在不同的场景中也各有优劣。我们一起看一下char和varchar:

    相同点:

    1. char(n),varchar(n)中的n都代表字符的个数。
    2. 超过char,varchar最大长度n的限制后,字符串会被截断。

    不同点:

    1. char不论实际存储的字符数都会占用n个字符的空间,而varchar只会占用实际字符应该占用的字节空间加1(实际长度length,0<=length<255)或加2(length>255)。因为varchar保存数据时除了要保存字符串之外还会加一个字节来记录长度(如果列声明长度大于255则使用两个字节来保存长度)。
    2. 能存储的最大空间限制不一样:char的存储上限为255(2^8-1)字节,varchar的存储上限是65535(2^16-1)字节。
    3. char在存储时会截断尾部的空格,而varchar不会。

    根据char和varchar结构和数据保存上的不同点,我们比较一下两者的适用场景:

    1. 根据要存储的字符串长度来看: 长度相近且不需要很大存储空间的字符串可以选用char,节省存储空间。
    2. 从碎片的角度来看:用变长的字符串数据类型,需要时不时对碎片进行处理。
    3. 即使使用varchar的数据类型也不要盲目设置过大的存储限制,比如你只需要存储80个字符,VARCHAR(100)和VARCHAR(500)虽然都存储了同样长度的字符,但是内存消耗是不一样的。

    相关文章

      网友评论

          本文标题:MYSQL中char和varchar的区别

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