设为首页 - 加入收藏 站长在线 - 常用服务器软件 - 在线站长工具 - 在线伪原创工具
您的当前位置:主页 > 网络教程 > Mysql > 正文

MySQL中字段范例char、varchar和text的区别

来源:未知 编辑:zzwww 时间:2019-12-12

在MySQL中,char、varchar和text范例的字段都可以用来存储字符范例的数据,char、varchar都可以指定最大的字符长度,但text不行以。

它们的存储方法和数据的检索方法也都纷歧样。

数据的检索服从是:char varchar text

详细声名:

char:存储定长数据很利便,CHAR字段上的索引服从级高,必需在括号里界说长度,可以有默认值,好比界说char(10),那么岂论你存储的数据是否到达了10个字节,,都要占去10个字节的空间(自动用空格添补),且在检索的时辰后头的空格会潜匿掉,以是检索出来的数据必要记得用什么trim之类的函数去过滤空格。

varchar:存储变长数据,但存储服从没有CHAR高,必需在括号里界说长度,可以有默认值。生涯数据的时辰,不举办空格自动添补,并且假如数据存在空格时,当值生涯和检索时尾部的空格仍会保存。其它,varchar范例的现实长度是它的值的现实长度+1,这一个字节用于生涯现实行使了多大的长度。

text:存储可变长度的非Unicode数据,最大长度为2^31-1个字符。text列不能有默认值,存储或检索进程中,不存在巨细写转换,后头假如指定长度,不会报错误,可是这个长度是不起浸染的,意思就是你插入数据的时辰,高出你指定的长度照旧可以正常插入。

关于存储空间:

在行使UTF8字符集的时辰,MySQL手册上是这样描写的:

  • 根基拉丁字母、数字和标点标记行使一个字节;
  • 大大都的欧洲和中东手写字母得当两个字节序列:扩展的拉丁字母(包罗发音标记、长音标记、重音标记、低音标记和其余音符)、西里尔字母、希腊语、亚美尼亚语、希伯来语、阿拉伯语、叙利亚语和其余说话;
  • 韩语、中文和日本象形笔墨行使三个字节序列。

结论:

1、常常变革的字段用varchar;

2、知道牢靠长度的用char;

3、高出255字节的只能用varchar可能text;

4、能用varchar的处所不消text;

5、可以或许用数字范例的字段只管选择数字范例而不消字符串范例,这会低落查询和毗连的机能,并会增进存储开销。这是由于引擎在处理赏罚查询和毗连回逐个较量字符串中每一个字符,而对付数字型而言只必要较量一次就够了;

6、统一张表呈现多个大字段,能归并时只管归并,不能归并时思量分表,缘故起因请考 优化InnoDB表BLOB,TEXT列的存储服从

总结

以上就是这篇文章的所有内容了,但愿本文的内容对各人的进修可能事变具有必然的参考进修代价,感谢各人对站长在线的支持。假如你想相识更多相干内容请查察下面相干链接


TAG标签:

网友评论:

文章右边250
Top