分享更有价值
被信任是一种快乐

MySQL数据库中的varchar限制规则是什么

文章页正文上

这篇文章主要介绍“MySQL数据库中的varchar限制规则是什么”,在日常操作中,相信很多人在MySQL数据库中的varchar限制规则是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL数据库中的varchar限制规则是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习免费主机域名吧!  1、限制规则  字段的限制在字段定义的时候有以下规则:  a)存储限制  varchar字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。  b)编码长度限制  字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766;  字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。  若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。  c)行长度限制  导致实际应用中varchar长度限制的是一个行定义的长度。MySQL要求一个行的定义长度不能超过65535。若定义的表长度超过这个值,则提示ERROR1118(42000):Rowsizetoolarge.Themaximumrowsizefortheusedtabletype,notcountingBLOBs,is65535.YouhavetochangesomecolumnstoTEXTorBLOBs。  MySQL数据库中varchar的限制规则是什么  2、计算例子  举两个例说明一下实际长度的计算。  a)若一个表只有一个varchar类型,如定义为createtablet4(cvarchar(N))charset=gbk;则此处N的最大值为(65535-1-2)/2=32766。  减1的原因是实际行存储从第二个字节开始’;  减2的原因是varchar头部的2个字节表示长度;  除2的原因是字符编码是gbk。  b)若一个表定义为createtablet4(cint,c2char(30),c3varchar(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规则,被强制转成t免费主机域名ext类型,则每个字段占用定义长度为11字节,当然这已经不是“varchar”了。到此,关于“MySQL数据库中的varchar限制规则是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注云技术网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: mysql数据库怎么定时备份

这篇文章主要讲解了“mysql数据库怎么定时备份”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql数据库怎么定时备份”吧!操作步骤:1、将脚本放到任意位置下,不容易被误删即可2、定时任务,一周执行一次脚本…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册