匿名用户

1级

2018-10-05 回答

MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节的数据,起始位和结束位占去了3个字 节,也就是说,在4.1或以下版本中需要使用固定的TEXT或BLOB格式存放的数据可以使用可变长的varchar来存放,这样就能有效的减少数据库文 件的大小。

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。

mysql数据库设置索引 以下_如何设置MySQL数据库表的索引总长度相关推荐

  1. 如何设置mysql让其他人能访问_怎么设置MySQL就能让别人访问本机的数据库了?...

    找到MySQL配置文件,搜索"bind-address",找到这一行: bind-address = 127.0.0.1 在前面加一个#,注释掉这一行,保存,重启MySQL. 再通 ...

  2. mysql 设置连接超时_如何配置MySQL数据库超时设置

    最近备战京东双11,在配置MySQL的超时配置发现有很多地方可以设置.这么多超时的配置有什么影响,以及配置会有什么影响呢?今天的文章就让我来大家来分析一下. 1. JDBC超时设置 connectTi ...

  3. 如何设置mysql让其他人能访问_怎么配置MySQL数据库让别人远程访问

    展开全部 有三种方法: 方法一e69da5e6ba903231313335323631343130323136353331333431336230(不推荐).本地登入mysql,更改 "my ...

  4. mysql外键约束脚本_如何在MySQL中设置外键约束

    (1) 外键的使用: 外键的作用,主要有两个: 一个是让数据库自己通过外键来保证数据的完整性和一致性 一个就是能够增加ER图的可读性 有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库 ...

  5. mysql like 多个条件_千万级MySQL数据库这样建索引可以让你的数据库飞起来.........

    创建索引常用规则 1.表的主键.外键必须有索引: 2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引: 4.经常出现在Where子句中的字段,特别是大表的字段 ...

  6. mysql怎么设置登录密码_怎么设置mysql的登录密码

    怎么设置mysql的登录密码 发布时间:2020-10-09 19:21:35 来源:亿速云 阅读:80 作者:小新 小编给大家分享一下怎么设置mysql的登录密码,相信大部分人都还不怎么了解,因此分 ...

  7. 加载八叉树索引文件_这篇 MySQL 索引和 B+Tree 讲的太通俗易懂!

    正确的创建合适的索引,是提升数据库查询性能的基础.在正式讲解之前,对后面举例中使用的表结构先简单看一下: create table user (id bigint not null comment ' ...

  8. mysql 删除多余帐号_安装完mysql数据库后的优化(删除多余用户和数据库)

    安装完mysql数据库后的优化(删除多余用户和数据库) 发布时间:2020-06-27 19:09:35 来源:51CTO 阅读:2761 作者:冰冻vs西瓜 栏目:数据库 1.查看数据库的版本信息: ...

  9. mysql不同实例数据同步_两台Mysql数据库数据同步实现实例

    做开发的时候要做Mysql的数据库同步,两台安装一样的系统,都是FreeBSD5.4,安装了Apache 2.0.55和PHP 4.4.0,Mysql的版本是4.1.15,都是目前最新的版本. 1. ...

最新文章

  1. 深入浅出WPF——附加事件(Attached Event)
  2. 比較++和+的运算符优先级
  3. [agc016e]poor turkeys
  4. avro和java原生序列化的区别,java原生序列化和Kryo序列化性能比较
  5. python3读取excel方法封装_Python读取Excel的方法封装
  6. 【LeetCode - 1765】. 地图中的最高点
  7. python内建模块_Python 内建模块
  8. dvd打开显示服务器失败,9g、10g和11G PowerEdge服务器未启动的e1000故障安全错误
  9. Spring Boot+JPA 查询数据方式与代码演示
  10. 多智能体MAPPO代码环境配置以及代码讲解
  11. 魂斗罗进化革命+塞班JAVA版_魂斗罗进化革命电脑版
  12. 本地telnet使用
  13. 小学计算机兴趣小组计划书,小学科技兴趣小组活动计划书
  14. c语言计时纳秒_C代码中以纳秒为单位计算函数时间
  15. 追加审批人样式html,更新 | 你的审批打印模板真丑!看别人用html模板怎么玩
  16. 你真的知道什么是三观吗?
  17. (完全理解)二重积分中的换元积分中的雅可比矩阵
  18. variable ‘XXX cannot be implicitly captured in a lambda with no capture-default specified
  19. AHOI2019N省联考凉凉记
  20. VS2008 ActiveX(ocx控件)的调试工具ActiveX Control Test Container安装说明

热门文章

  1. 使用 OpCache 提升 PHP 5.5+ 程序性能
  2. ES6学习之 -- Set数据结构
  3. 2021-03-06JAVA大数据Week1
  4. 计算机名会影响电脑网络吗,电脑接网线会比连WiFi网速快吗【详细介绍】
  5. skywalking调研相关资料整理
  6. 解决PyScripter中文乱码问题
  7. java mediator模式_Java实现中介者模式-Mediator Pattern
  8. 同步现象 心理学_男生是不是更容易从失恋中走出来?心理学:失恋后悲伤,男女不同...
  9. mysql dump xtrabackup_MySQL之备份和恢复(msyqldump、LVM、xtrabackup)
  10. 计算机视觉工作项目方案设计,机器视觉(项目方案设计案例)47.pdf