百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> MySQL中字段类型char、varchar和text的区别
分享文章到:

MySQL中字段类型char、varchar和text的区别

发布时间:05/13 来源:未知 浏览: 关键词:

在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列的存储效率

总结

以上就是这篇文章的全部内容了,但愿本文的内容对大家的学习或者工作拥有一定的参考学习价值,感谢大家对脚本之家的支撑。要是你想理解更多相干内容请查看下面相干链接

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有157人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板