我的日常

登录/注册
您现在的位置:论坛 资料库 数据库开发 > nysql中char与varchar的区别
总共48086条微博

动态微博

查看: 1378|回复: 0

nysql中char与varchar的区别

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-05-24 18:48:46 |只看该作者 |倒序浏览
    在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型。
    char与varchar的区别

    char (16)长度固定, 如'www.uphtm.com' 存储需要空间 14个字符

    varchar(16) 可变长 如'www.uphtm.com' 需要存储空间 15字符,

    从上面可以看得出来char 长度是固定的,不管你存储的数据是多少他都会都固定的长度。而varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置。所以实际应用中用户可以根据自己的数据类型来做。

    再看看char,与varchar在速度上的区别吧。
    mysal>create tabe ab(v varchar(4),c char(4));
    query ok ,0 rows affected(0.02 sec)
    mysql>insert into abc values('ab ','ab ')
    query ok ,1 row affected(0.00 sec);
    mysql->select concat(v ,'+') ,concat(c ,'+') form abc
    ab + | ab+
    1rows in set (0.00 sec)

    从上面可以看出来,由于某种原因char 固定长度,所以在处理速度上要比varchar快速很多,但是对费存储空间,所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例。

    注明:

    在用char字符类型时内容后面有空间时必须作相关处理,要不就会把空格自动删除。

    建意:

    myisam 存储引擎 建议使用固定长度,数据列代替可变长度的数据列。
    memory存储引擎 目前都使用固定数据行存储,因此无论使用char varchar列都没关系,
    innodb 存储引擎 建意使用varchar 类型。


    我的日常 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与我的日常享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和我的日常的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、我的日常管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表