首页 > 学院 > 开发设计 > 正文

MySQL学习笔记_01_MySQL中char和varchar的本质区别

2019-11-09 13:34:58
字体:
来源:转载
供稿:网友

   值                  

       CHAR(4)   

    存储需求    

     VARCHAR(4)   

  存储需求  

    ''

       '    '

    4个字节

      ''

   1个字节

   'ab'

      'ab  '

    4个字节

      'ab '

   3个字节

   'abcd'

      'abcd'

    4个字节

     'abcd'

   5个字节

  'abcdefgh'

      'abcd'

   4个字节

     'abcd'

   5个字节

char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。varchar[(n)]      长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。 2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表