mysql 数据类型
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,一、char的长度是固定的,不管存储的数据是多少都会是固定的长度,上限为255个字节,varchar的上限为65535字节,char(4); //这个4表示最多存储4个【字符】,长度可以为从0到255
千家信息网最后更新 2025年11月08日mysql 数据类型
一、char的长度是固定的,不管存储的数据是多少都会是固定的长度,上限为255个字节,varchar的上限为65535字节,
char(4); //这个4表示最多存储4个【字符】,
长度可以为从0到255的任何值,当存储的字符串长度小于指定的长度,
会在字符串的右边填充空格达到指定的长度,当查询字符串的时候会删除右边空格
二、varchar 是变长的,
varchar(4)//这个4表示最多存储4个【字符】,
长度可以指定为0到65535之间的值(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节),
VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)
varchar(30)最大存储30个字符;varchar(5)和(200)存储hello所占空间一样,但后者在排序时会消耗更多内存,因为order by col采用fixed_length计算col长度(memory引擎也一样)
三、int(20)中20的涵义是指显示字符的长度
但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示00000000001 ~~~00000000010,当字符的位数超过11,它也只显示11位,如果你没有加那个让它未满11位就前面加0的参数,它不会在前面加0
20表示最大显示宽度为20,但仍占4字节存储,存储范围不变;
四、text
text的上限位65535,不能设定默认值
五、总结char,varchar,text区别
char,存定长,速度快,存在空间浪费的可能,会处理尾部空格
varchar,存变长,速度慢,不存在空间浪费,不处理尾部空格,上限65535,但是有存储长度实际65532最大可用
text,存变长大数据,速度慢,不存在空间浪费,不处理尾部空格,上限65535,会用额外空间存放数据长度,顾可以全部使用65535。
长度的区别,char范围是0~255,varchar最长是64k,但是注意这里的64k是整个row的长度,要考虑到其它的column,还有如果存在not null的时候也会占用一位,对不同的字符集,有效长度还不一样,比如utf8的,最多21845,还要除去别的column,但是varchar在一般情况下存储都够用了。如果遇到了大文本,考虑使用text,最大能到4G。
效率来说基本是char>varchar>text,但是如果使用的是Innodb引擎的话,推荐使用varchar代替char
char和varchar可以有默认值,text不能指定默认值
取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的,尽管如此,char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。再者,char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;
而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。
空间方面:
从官方文档中我们可以得知当varchar大于某些数值的时候,其会自动转换为text,大概规则如下:
大于varchar(255)变为 tinytext
大于varchar(500)变为 text
大于varchar(20000)变为 mediumtext
所以对于过大的内容使用varchar和text没有太多区别。
性能方面:
索引会是影响性能的最关键因素,而对于text来说,只能添加前缀索引,并且前缀索引最大只能达到1000字节。
而貌似varhcar可以添加全部索引,但是经过测试,其实也不是。由于会进行内部的转换,所以long varchar其实也只能添加1000字节的索引,如果超长了会自动截断。
当超过255的长度之后,使用varchar和text没有本质区别,只需要考虑一下两个类型的特性即可。
(4)、mysql为什么这么设计
对大多数应用没有意义,只是规定一些工具用来显示字符的个数;int(1)和int(20)存储和计算均一样;
参考:http://www.cnblogs.com/billyxp/p/3548540.html
一、char的长度是固定的,不管存储的数据是多少都会是固定的长度,上限为255个字节,varchar的上限为65535字节,
char(4); //这个4表示最多存储4个【字符】,
长度可以为从0到255的任何值,当存储的字符串长度小于指定的长度,
会在字符串的右边填充空格达到指定的长度,当查询字符串的时候会删除右边空格
二、varchar 是变长的,
varchar(4)//这个4表示最多存储4个【字符】,
长度可以指定为0到65535之间的值(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节),
VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)
varchar(30)最大存储30个字符;varchar(5)和(200)存储hello所占空间一样,但后者在排序时会消耗更多内存,因为order by col采用fixed_length计算col长度(memory引擎也一样)
三、int(20)中20的涵义是指显示字符的长度
但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示00000000001 ~~~00000000010,当字符的位数超过11,它也只显示11位,如果你没有加那个让它未满11位就前面加0的参数,它不会在前面加0
20表示最大显示宽度为20,但仍占4字节存储,存储范围不变;
四、text
text的上限位65535,不能设定默认值
五、总结char,varchar,text区别
char,存定长,速度快,存在空间浪费的可能,会处理尾部空格
varchar,存变长,速度慢,不存在空间浪费,不处理尾部空格,上限65535,但是有存储长度实际65532最大可用
text,存变长大数据,速度慢,不存在空间浪费,不处理尾部空格,上限65535,会用额外空间存放数据长度,顾可以全部使用65535。
长度的区别,char范围是0~255,varchar最长是64k,但是注意这里的64k是整个row的长度,要考虑到其它的column,还有如果存在not null的时候也会占用一位,对不同的字符集,有效长度还不一样,比如utf8的,最多21845,还要除去别的column,但是varchar在一般情况下存储都够用了。如果遇到了大文本,考虑使用text,最大能到4G。
效率来说基本是char>varchar>text,但是如果使用的是Innodb引擎的话,推荐使用varchar代替char
char和varchar可以有默认值,text不能指定默认值
取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的,尽管如此,char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。再者,char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;
而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。
空间方面:
从官方文档中我们可以得知当varchar大于某些数值的时候,其会自动转换为text,大概规则如下:
大于varchar(255)变为 tinytext
大于varchar(500)变为 text
大于varchar(20000)变为 mediumtext
所以对于过大的内容使用varchar和text没有太多区别。
性能方面:
索引会是影响性能的最关键因素,而对于text来说,只能添加前缀索引,并且前缀索引最大只能达到1000字节。
而貌似varhcar可以添加全部索引,但是经过测试,其实也不是。由于会进行内部的转换,所以long varchar其实也只能添加1000字节的索引,如果超长了会自动截断。
当超过255的长度之后,使用varchar和text没有本质区别,只需要考虑一下两个类型的特性即可。
(4)、mysql为什么这么设计
对大多数应用没有意义,只是规定一些工具用来显示字符的个数;int(1)和int(20)存储和计算均一样;
参考:http://www.cnblogs.com/billyxp/p/3548540.html
长度
字符
存储
字节
空间
最大
空格
数据
上限
索引
时候
两个
字符串
尾部
效率
速度
处理
类型
有效
前缀
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
2K21服务器是不是关闭了
联邦互联网科技加盟
网络安全会议设备
影视服务器搭配
趣享网络技术有限公司
市网络安全应急指挥中心主任
sql数据库安装包下载
软件开发转金融行业
在计算机网络安全中
剑网3服务器点卡
校园网络安全我知道手抄报
肇庆旅游软件开发
2012服务器系统安装进不去
服务器隔板
车载网络技术凌永成免费下载
mysql数据库进程
中国商务部投资数据库
手机pc模拟器服务器
云服务器硬件配置
每日考勤设计数据库
万方数据库山东交通学院
东风岚图软件开发
计算机网络技术专业认知总结
怎么远程连接db2数据库
财务网络安全隐患
网络安全宣传周竞赛答案
hr转换成数据库
应届生软件开发工程师简历
mysql数据库字段长度汉字
天津信息化软件开发定制价格