MySQL中varchar的最大长度?

php中文网
发布: 2016-06-07 16:37:45
原创
1799人浏览过

mysql中varchar最大长度是多少?这不是一个固定的数字。简要说明一下限制规则。 限制规则 字段的限制在字段定义的时候有以下规则: a) 存储限制 varchar?字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字

mysql中varchar最大长度是多少?这不是一个固定的数字。简要说明一下限制规则。

限制规则

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

a) 存储限制

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

b) 编码长度限制

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

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

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

c) 行长度限制

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

ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。

例子

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

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

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

MC_Shop B2C网上商城系统
MC_Shop B2C网上商城系统

mc_shop B2C商城是一款优秀的网上商城系统网店系统网购系统,适合中小企业开通网上商城系统网店系统购物系统,在淘宝,阿里巴巴创造创造上市融资神话、京东创造中国最大的渠道商、百度,腾讯纷纷进军电子商务的大潮下,麦拷林上市掀起了新一轮b2c网上商城投资热潮,本系统致力于协助众多中小企业进军网上商城网上购物电子商务领域。mc_shop b2c网上商城系统、购物系统、网店系统 开源易用,免费商业使用

MC_Shop B2C网上商城系统 0
查看详情 MC_Shop B2C网上商城系统

则此处N的最大值为(65535-1-2)/2=?32766。

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

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

除2的原因是字符编码是gbk。

b) 若一个表定义为

create table t4(c int, c2 char(30), c3 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”了。

来源:http://dinglin.iteye.com/blog/914276

MySQL中varchar的最大长度? mysql中varchar最大长度是多少?这不是一个固定的数字。简要说明一下限制规则。 限制规则 字段的限制在字段定义的时候有以下规则: a) 存储限制 varchar?字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。 b) 编码长度限制 字符类型若为gbk,每个字符最多占2个字节,最大长度不能超过32766; 字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。 若定义的时候超过上述限制,则varchar字段会被强行转为text类型,并产生warning。 c) 行长度限制 导致实际应用中varchar长度限制的是一个行定义的长度。?MySQL要求一个行的定义长度不能超过65535。若定义的表长度超过这个值,则提示 ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。 例子 举两个例说明一下实际长度的计算。 a) ?若一个表只有一个varchar类型,如定义为 create table t4(c varchar(N)) charset=gbk; 则此处N的最大值为(65535-1-2)/2=?32766。 [...]MySQL中varchar的最大长度?
相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号