加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql必读MySQL数据库varchar的限制规则说明

发布时间:2020-12-12 02:36:17 所属栏目:MySql教程 来源:网络整理
导读:《Mysql必读MySQL数据库varchar的限制规则说明》要点: 本文介绍了Mysql必读MySQL数据库varchar的限制规则说明,希望对您有用。如果有疑问,可以联系我们。 MySQL 数据库中 varchar 最大长度是多少?其实这不是一个固定的数字,varchar的长度是有 限制规则 的.

《Mysql必读MySQL数据库varchar的限制规则说明》要点:
本文介绍了Mysql必读MySQL数据库varchar的限制规则说明,希望对您有用。如果有疑问,可以联系我们。

MySQL数据库中varchar最大长度是多少?其实这不是一个固定的数字,varchar的长度是有限制规则的.本文我们就来介绍一下MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,接下来就让我们一起来了解一下这部门内容.MYSQL数据库

1、限制规矩MYSQL数据库

字段的限制在字段界说的时候有以下规则:MYSQL数据库

a)存储限制MYSQL数据库

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

b)编码长度限制MYSQL数据库

字符类型若为gbk,每个字符最多占2个字节,最大长度不克不及超过32766;MYSQL数据库

字符类型若为utf8,每个字符最多占3个字节,最大长度不克不及超过21845.MYSQL数据库

若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并发生warning.MYSQL数据库

c)行长度限制MYSQL数据库

导致实际应用中varchar长度限制的是一个行定义的长度.MySQL要求一个行的定义长度不克不及超过65535.若定义的表长度超过这个值,则提示ERROR1118(42000):Rowsizetoolarge.Themaximumrowsizefortheusedtabletype,notcountingBLOBs,is65535.YouhavetochangesomecolumnstoTEXTorBLOBs.MYSQL数据库

2、计算例子MYSQL数据库

举两个例阐明一下实际长度的计算.MYSQL数据库

a)若一个表只有一个varchar类型,如定义为createtablet4(cvarchar(N))charset=gbk;则此处N的最年夜值为(65535-1-2)/2=32766.MYSQL数据库

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

减2的原因是varchar头部的2个字节表现长度;MYSQL数据库

除2的原因是字符编码是gbk.MYSQL数据库

b)若一个表定义为createtablet4(cint,c2char(30),c3varchar(N))charset=utf8;则此处N的最年夜值为(65535-1-2-4-30*3)/3=21812.MYSQL数据库

减1和减2的原因与上例相同;MYSQL数据库

减4的原因是int类型的c占4个字节;MYSQL数据库

减30*3的原因是char(30)占用90个字节,编码是utf8.MYSQL数据库

如果varchar跨越上述的b规则,被强制转成text类型,则每个字段占用定义长度为11字节,当然这已经不是“varchar”了.MYSQL数据库

关于MySQL数据库中varchar的限制规矩的知识就介绍到这里了,希望本次的介绍能够对您有所收获!MYSQL数据库

《Mysql必读MySQL数据库varchar的限制规则说明》是否对您有启发,欢迎查看更多与《Mysql必读MySQL数据库varchar的限制规则说明》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读