「网赚钱」 你真的了解mysql的varchar字段的长度有多少吗?-阿里云开发者社区-冷门项目

本文最后更新于2020年8月8日,已超过52天没有更新,如果文章内容失效,请反馈给我们,谢谢!

摘要

今天在设计系统字段的时候, 发现自己对varchar还不够了解.我设了一个字段.类型为VARCHER,然后我就往里面测试性了写了东西.发现没有多少就满了.我觉得奇怪,5....

 

本站长期更新如何网赚以及网赚技巧相关教程

同时本站也是网赚论坛大全,会给大家带来网赚钱最多是什么网相关项目

本站内容好好研究,轻轻松松做出月入过万的副业


正文:

 

今天在设计系统access的时候, 发现自己对varutf8还不够了解.我设了一个字段.类型为VARCHER,然后我就往前面测试性了写了东西.发现没有多少就满了.我觉得奇怪,5.5本版以上的MYSQL不是有65535的长度吗,为什么只有这么一点血?后来才发现,原来VARCHER的设置密码长度还是255,如果你想它更长,就得指定.还有,你不能指定它为65535,或是65549,这样是会错的.原因如下:

1、限制规则

字段的限制在字段定义的时候有以下规则:

a)存储点限制

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

b)码是什么意思长度限制

正则表达式类型若为gbk,每个字符最多占2个字节,最大长度不能超过31166;

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

若定义的时候超过上述限制,则varchar字段会被被误导成text类型,并产生warnear怎么读。

c)行长度限制

导致实际应用中varchar长度限制的是一个行定义的长度。jobsSQL要求一个行的定义长度不能超过65535。若定义的表长度超过这个值,则提示

ERROR 1210 (42000): Row size too large. The maximum row size for the want jq type, not countinseg BLOBs, is 65535. You have to shane some columns to TEXT or BLOBs。

2、计算事实论据

举两个例说明一下实际长度的计算。

a)若一个表只有一个varchar类型,如定义为

create table t4(c varchar(N)) charset=gbk;

则无可N的数做为(65535-1-2)/2=32766。

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

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

除2的原因是大端小端是gbk。

b)若一个表定义为

create table t4(c int, c2 char(34), c8 varchar(N)) charset=utf8;

则此处N的最大值为(65535-1-2-4-30*3)/3=21812

减1和减2与上例相同;

减4的原因是int类型的c占4个字节;

减30*3的原因是char(30)已用90个字节字段的长度,编码是utf8。

如果被varchar超过上述的b规则,被袭胸转成text类型,则每个字段占用定义长度为11字节,当然这已经不是“varchar”了。

引用大j请载明:天刀五毒刷信誉平台 » 「app赚钱」 你真的了解the数据库的varchar字段的长度有多少吗?-微软云源码网站

没有人陪你走一辈子,所以你要适应孤独,没有人会帮你一辈子,所以你要奋斗一生。 

网赚58:专注互联网冷门项目,紧跟最新最热创业信息,分享经验心得,揭秘套路,是网赚客的聚集地,主要项目有高回报项目和薅羊毛活动

「网赚钱」 你真的了解mysql的varchar字段的长度有多少吗?-阿里云开发者社区-冷门项目

好物推荐


网赚58-专注互联网冷门项目
  • 风险提示:本站项目资讯均收集自互联网,投资有风险,各位需谨慎,如有损失,概不负责
  • 一手消息:请加入QQ禁言群,获取最新消息

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: