首先两点需要知道:

MySQL是以字符为单位解释字符列定义中的长度。(在MySQL 4.1之前是以字节为单位进行解释。)这适用于char,varchar和text类型。

MySQL 5.0.3及以后的版本中varchar的有效最大长度取决于最大行规模(也就是65535个字节)和所使用的字符集。例如,utf-8中需要使用三个字节来表示一个字符,因此使用utf8字符集时,varchar可声明的最大值为21844个字符。

下面是三种类型的比较:

char(n)

  • char是定长格式的,索引速度快。

  • 每个值占用n个字节,其中n的最大取值为255。

  • 如果长度小于n,则MySQL会在右边用空格补充,但是在检索时,那些填补的空格会被去掉,因此会造成空间浪费。

  • 字节数超过n时会截断。

varchar(n):

  • varchar是不定长的,索引速度比char慢。

  • 其中n代表的是最大的字符长度,n最大取65535。

  • 数据列中的每个字为数据占用的字节长度加上一个记录其长度的字节。

  • 检索时,不会去掉结尾的空格。

  • 字节数超过n时会截断。

text

  • 不定长,速度慢,索引只能是前缀索引。

  • 上限为65535个字节,不过还有mediumtext和longtext可以储存更多的数据。

  • 按字符长度占用空间,用2个字节记录存储长度,不过该记录在数据之外,不占用数据的空间。

  • 检索时,不会去掉结尾的空格。

mysql中char,varchar和text类型的区别和选用相关推荐

  1. mysql中char,varchar与text类型的区别和选用

    关于char,varchar与text平时没有太在意,一般来说,可能现在大家都是用varchar.但是当要存储的内容比较大时,究竟是选择varchar还是text呢?不知道...... text .  ...

  2. mysql中char,varchar,text

    1.char char最大长度是255字符,注意是字符数和字符集没关系. 1)可以有默认值, 2)尾部有空格会被截断 3)不管汉字.英文,还是其他编码,都可以存255字符 2.varchar 1)va ...

  3. oracle中varchar 和 nvarchar2的区别,Oracle中char,varchar,varchar2,nvarchar,nvarchar2的区别

    一.概述 1.char char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节: char是区分中英文 ...

  4. SQL中char varchar nchar nvarchar ntext区别和使用(资料汇总)

    SQL中char varchar nchar nvarchar ntext区别和使用(资料汇总) 2008年10月14日 星期二 23:57 一.SQL中char varchar nchar nvar ...

  5. MySQL中char,varchar和text的区别

    MySQL中char,varchar和text的区别 java程序中的string类型,在mysql数据表中可以有三种对应的类型:char,varchar和text. char,varchar和tex ...

  6. MySQL中char与varchar的区别

    字符与字节的区别 一个字符由于所使用的字符集的不同,会并存储在一个或多个字节中,所以一个字符占用多少个字节取决于所使用的字符集 注意:char与varchar后面接的数据大小为存储的字符数,而不是字节 ...

  7. mysql中nchar_浅谈SQL Server、MySQL中char,varchar,nchar,nvarchar区别

    1,定义: char:    固定长度,存储ANSI字符,不足的补英文半角空格. nchar:   固定长度,存储Unicode字符,不足的补英文半角空格 varchar:  可变长度,存储ANSI字 ...

  8. 解决Data too long for column ‘xxx‘ at row 1问题以及深入理解mysql的字符串数据类型(char,varchar,enum,text,longtext...)

    文章目录 1. 复现问题 2. 分析问题 3. 深入理解mysql的数据类型 3.1 CHAR 和 VARCHAR 类型 3.2 TEXT 类型 3.3 ENUM 类型 3.4 SET 类型 4. 解 ...

  9. mysql中char与varchar的区别分析

    原文网址:http://www.jb51.net/article/23575.htm mysql中char与varchar的区别分析 作者: 字体:[增加 减小] 类型:转载 在mysql教程中cha ...

最新文章

  1. 一种事件相机描述子——DART
  2. C语言函数知识体系大学霸IT达人
  3. “国家使命”图书第一批权威发布
  4. iOS 7 改变Status Bar 颜色
  5. html(4)标签form表单——基础
  6. [C]Ubuntu 13.04实现NVIDIA双显卡切换
  7. Web 2.0 编程思想:16条法则
  8. RTP/RTCP/RTSP
  9. Raspberry 4B 2G Shairport-sync Airplay
  10. 直播电商源码,实现直播音视频的推流
  11. 腾讯云服务器地域节点IP速度测试表
  12. AQI(空气质量指数)分析与预测(二)
  13. uniapp返回上一页,刷新列表
  14. 《别让这种习惯毁掉你的一生,改变他!》
  15. JavaScript滚动条插件源码
  16. 综合评价的基本理论和数据预处理
  17. 我的新书 asp net开发技巧精讲
  18. Win10系统路由器设置教程
  19. 科学计算机返回模式,从科学发展模式看计算机科学的发展道路
  20. java毕业生设计贝儿米幼儿教育管理系统计算机源码+系统+mysql+调试部署+lw

热门文章

  1. 三目运算符判0 问题
  2. 原力协议联席CEO David:Libra或构建数字帝国 我们不可不防
  3. mysql密码到期 1862_MySQL错误代码1862yourpasswordhasexpired的解决方法
  4. Android Studio更新后右上角一直提示analyzing
  5. Ubuntu16.04无法更新apt,一直报错
  6. 老男孩python全栈s21day02笔记
  7. golang发送http请求
  8. 服务器中如何检查端口是否开放
  9. v-for 循环数组
  10. qemu模拟arm64一直卡住不动