这篇文章主要介绍“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数据库怎么定时备份”吧!操作步骤:1、将脚本放到任意位置下,不容易被误删即可2、定时任务,一周执行一次脚本…