MySQL数据类型char、varchar、text的比较
来源:互联网 发布:鹅妈妈童谣 知乎 编辑:程序博客网 时间:2024/05/16 12:37
char(n)定义的列的长度为固定的,长度为0~255之间。
当保存char值时,在它们的右边填充空格以达到指定的长度。
当检索到char值时,尾部的空格被删除掉。
注意:char最大长度是255字符,字符数和字符集没关系。
varchar(n)定义的列的长度为可变长的。
该类型在5.0以下的版本中的最大长度限制为255字节,
而在5.0及以上的版本中,varchar数据类型的长度支持到了65535字节(注意是字节而不是字符)。
(varchar的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65532字节)。
同char对比,varchar值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。
注意:对于5.0以上的版本
1.一个汉字占多少长度与编码有关:
UTF-8:一个汉字=3个字节
GBK:一个汉字=2个字节
2.varchar(n)表示n个字符,无论汉字和英文,MySQL都能存入n个字符,仅是实际字节长度有所区别
若一个表只有一个varchar类型,如定义为:
create table test(test varchar(n)) charset=utf8;
则此处n的最大值为(65535-1-2)/3 = 21844。
减1的原因是实际行存储从第二个字节开始';
减2的原因是varchar头部的2个字节表示长度;
除3的原因是字符编码是utf8。
text和varchar基本相同。text会忽略指定的大小这和varchar有所不同,text不能有默认值。
text使用额外的2个字节来存储数据的大小,varchar根据存储数据的大小选择用几个字节来存储。
text的65535字节全部用来存储数据,varchar则会占用1-3个字节去存储数据大小。
TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB
MyISAM tables in MySQL have a maximum size of a row of 65,535 bytes,
so all the data in a row must fit within that limit.
However, the TEXT types are stored outside the table itself and only contribute 9 to 12 bytes towards that limit.
当保存char值时,在它们的右边填充空格以达到指定的长度。
当检索到char值时,尾部的空格被删除掉。
注意:char最大长度是255字符,字符数和字符集没关系。
varchar(n)定义的列的长度为可变长的。
该类型在5.0以下的版本中的最大长度限制为255字节,
而在5.0及以上的版本中,varchar数据类型的长度支持到了65535字节(注意是字节而不是字符)。
(varchar的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65532字节)。
同char对比,varchar值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。
注意:对于5.0以上的版本
1.一个汉字占多少长度与编码有关:
UTF-8:一个汉字=3个字节
GBK:一个汉字=2个字节
2.varchar(n)表示n个字符,无论汉字和英文,MySQL都能存入n个字符,仅是实际字节长度有所区别
若一个表只有一个varchar类型,如定义为:
create table test(test varchar(n)) charset=utf8;
则此处n的最大值为(65535-1-2)/3 = 21844。
减1的原因是实际行存储从第二个字节开始';
减2的原因是varchar头部的2个字节表示长度;
除3的原因是字符编码是utf8。
text和varchar基本相同。text会忽略指定的大小这和varchar有所不同,text不能有默认值。
text使用额外的2个字节来存储数据的大小,varchar根据存储数据的大小选择用几个字节来存储。
text的65535字节全部用来存储数据,varchar则会占用1-3个字节去存储数据大小。
TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB
MyISAM tables in MySQL have a maximum size of a row of 65,535 bytes,
so all the data in a row must fit within that limit.
However, the TEXT types are stored outside the table itself and only contribute 9 to 12 bytes towards that limit.
- MySQL数据类型char、varchar、text的比较
- MYSQL中CHAR,VARCHAR,BLOB和TEXT的比较
- mysql数据库text、varchar、blob数据类型比较
- postgresql数据库varchar、char、text的比较
- mysql char varchar text的区别
- mysql char,varchar与text的选择
- 【MySQL进阶】--char & varchar & text的区别
- Mysql 中 char 、varchar 、text的区别
- Mysql 中 char 、varchar 、text的区别
- mysql列类型char,varchar,text,tinytext,mediumtext,longtext的比较与选择
- mysql列类型char,varchar,text,tinytext,mediumtext,longtext的比较与选择
- MySQL的char和varchar比较
- MySQl之char,varchar,text
- MySQL数据类型 CHAR和VARCHAR
- MySQL中char、varchar和text的区别
- MySQL中char、varchar和text的区别
- MySQL中char、varchar和text的区别
- MySQL之char、varchar和text的设计
- zoj1128-Atlantis
- js数组操作大全(转)
- [疯狂Java讲义精粹] 第五章|面向对象(下)
- 2440-中断寄存器详解[转]
- CString 操作指南
- MySQL数据类型char、varchar、text的比较
- 初识win8
- [转载]C++虚函数
- 在python project中实现类似java project里的properties文件功能
- LG P350收不到短信,终极解决方法
- 强劲的网络。http://www.chartboost.com/
- 商论之:传统行业应该向电子商务学点什么?
- passbook pass生成网站 http://www.passsource.com
- Android 目录结构分析