快乐十分20选8技巧 www.6qljx.cn varchar和char在MySQL数据库中都是用来保存字符型数据的,但是无论从结构还是从数据的保存方式来看,两者的相差很大。

定长与变长

char 表示定长,长度固定,比如char(10),表示存储的是10个字符,无论你插入的是多少,都是10个,如果少于10个,则用空格填满。

varchar表示变长,即长度可变。varchar(10),当插入的字符小于10个的话,则插入多少个字符就存多少个。对于varchar来说,因为需要知道所存储字符的长度,需要使用一个(如果字符串长度小于255)或两个字节(长度大于255)来存储字符串的长度。

存储容量的差异

对 char 来说,最多能存放的字符个数 255,和编码无关。

varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535字符。

根据编码不同,长度限制也不同:

字符类型为Latin1,每个字符占用1个字节,最大长度不能超过65532;

字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;

字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。

若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。

计算方法为:

(65535-1-2)/每个字符占用的字节数= 32766 个字符。

减1的原因是实际行存储从第二个字节开始;

减2的原因是varchar头部的2个字节表示长度;

转载请注明:快乐十分20选8技巧 » MySQL中varchar与char的区别

我来说说

(便于我们更好的交流)

有不明白的地方欢迎留言哦~
取消
  • 辽宁:电商成为精准扶贫的“利器” 2018-09-14
  • 鄱阳湖花海:文明仍应成为最美风景 2018-09-14
  • 时间放宽了,考核更难了 2018-07-26
  • 新时代 新作为 新篇章 2018-07-25
  • 大厨风范的海鲜做法,小白也能学会,鲜美营养,好吃到哭 2018-07-25
  • 我老张工可没有笑博士的野心,但自信有笑博士无法企及的本事。科学技术支持计划经济,在计划经济下,资源的配置和需要是计划的,无需个人去过多地操心。个人对社会,主要是 2018-07-25
  • 企业党建--安徽频道--人民网 2018-07-25
  • 无论谁说自己的理论是马克思主义理论都不算数,只有他的理论符合客观事实及其规律才是真理,否则便是谬误。 2018-07-24
  • 宝宝反复喉鸣 当心喉软骨发育不良 2018-07-24
  • 持续发力!又有三家微信公众号被吕梁市网信办约谈 2018-07-24
  • 向“份子钱”开刀 广州的士再改革 2018-07-24
  • 河北加强扬尘整治:全面推行“以克论净”考核标准 2018-07-23
  • 习近平会见塔吉克斯坦总统拉赫蒙 2018-07-23
  • 电子商务法草案三审:微商纳入经营者范围,个人二手转让不算 2018-07-22
  • 2018年北京高考阅卷21万份 23日发布成绩 2018-07-22
  • 956| 609| 549| 569| 440| 816| 969| 795| 163| 916|