当前位置:网站首页>MySQL中varchar 的最大长度
MySQL中varchar 的最大长度
2022-08-08 23:55:00 【无悔青春_j进无止境】
MySQL 数据库的varchar类型在4.1以下的版本中,nvarchar(存储的是Unicode数据类型的字符)不管是一个字符还是一个汉字,都存为2个字节 ,一般用作中文或者其他语言输入,这样不容易乱码 ;varchar: 汉字是2个字节,其他字符存为1个字节 ,varchar适合输入英文和数字。
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) ;5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 ;varchar(20)在Mysql4中最大也不过是20个字节,但是Mysql5根据编码不同,存储大小也不同,具体有以下规则:
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。
---------------------------------------------------------------------
mysql的vachar字段的类型虽然最大长度是65535,但是并不是能存这么多数据,最大可以到65533(不允许非空字段的时候),当允许非空字段的时候只能到65532。
边栏推荐
猜你喜欢
Kubernetes web网站无法访问
mysql 高级知识【order by 排序优化】
06 Spark on RDD序列化问题
HCIP2---静态路由、动态路由
TensorFlow learning path deep learning 】 【 5: several methods to prevent a fitting and within DNN TensorFlow implementation
OSPF综合实验
OSPF实验
移动端真机调试:chrome://inspect/#devices打开inspect后出现空白页
有了国产 DevOps 工具 ,还怕数字化转型成本高?
并发编程第9篇,Condition
随机推荐
移动端真机调试:chrome://inspect/#devices打开inspect后出现空白页
词云简单生成
【深度学习】TensorFlow学习之路二:ANN简介及TensorFlow实现
51nod 1706 最短路 + 思维
Get the start time of the week
redis集群redis-trib扩容缩容
11 Spark on RDD CheckPoint
14 Spark on RDD 广播变量
Laravel框架之文件上传
机器学习建模高级用法!构建企业级AI建模流水线
BGP实验
记录一些 PostgreSQL问题分析思路
使用 Gradio 在 huggingface 创建应用 Space
时间对象的格式化
postgresql源码学习(35)—— 检查点⑤-检查点中的XLog清理机制
获取当前一周时间 不含当天
APUE---chap4文件和目录---4.2~4.18(stat/access/umask/chmod/remove/rename)
51nod2861 2-sat
TensorFlow learning path deep learning 】 【 3: gradient disappear \ explosion and solution
【瑞吉外卖】day04:员工分页查询、启用/禁用员工账号、编辑员工信息