专栏首页python前行者MySQL中char、varchar和text的区别

MySQL中char、varchar和text的区别

它们的存储方式和数据的检索方式都不一样。 数据的检索效率是:char > varchar > text 空间占用方面,就要具体情况具体分析了。

1.char:存储定长数据很方便,CHAR字段上的索引效率级高,必须在括号里定义长度,可以有默认值,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间(自动用空格填充),且在检索的时候后面的空格会隐藏掉,所以检索出来的数据需要记得用什么trim之类的函数去过滤空格。 2.varchar:存储变长数据,但存储效率没有CHAR高,必须在括号里定义长度,可以有默认值。保存数据的时候,不进行空格自动填充,而且如果数据存在空格时,当值保存和检索时尾部的空格仍会保留。另外,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。 3.text:存储可变长度的非Unicode数据,最大长度为2^31-1个字符。text列不能有默认值,存储或检索过程中,不存在大小写转换,后面如果指定长度,不会报错误,但是这个长度是不起作用的,意思就是你插入数据的时候,超过你指定的长度还是可以正常插入。

关于存储空间:

在使用UTF8字符集的时候,手册上是这样描叙的:

基本拉丁字母、数字和标点符号使用一个字节; 大多数的欧洲和中东手写字母适合两个字节序列:扩展的拉丁字母(包括发音符号、长音符号、重音符号、低音符号和其它音符)、西里尔字母、希腊语、亚美尼亚语、希伯来语、阿拉伯语、叙利亚语和其它语言; 韩语、中文和日本象形文字使用三个字节序列。

结论: 经常变化的字段用varchar; 知道固定长度的用char; 尽量用varchar; 超过255字节的只能用varchar或者text; 能用varchar的地方不用text; 能够用数字类型的字段尽量选择数字类型而不用字符串类型的(电话号码),这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接回逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。

本文参考:http://www.jianshu.com/p/cc2d99559532

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何给文件夹设置密码

    **超级加密3000(全面加密)**是一款免激活码免注册机的超级加密3000破解版,主要针对那些经常对重要文件和文件夹加密的用户。该软件有超快和最强的文件加密、...

    周小董
  • Django基础系列1[概述]

    原文链接:http://www.jianshu.com/p/5a6dc4001385

    周小董
  • tf.equal()

    tf.equal(A, B)是对比这两个矩阵或者向量的相等的元素,如果是相等的那就返回True,反之返回False,返回的值的矩阵维度和A是一样的,x,y 的维...

    周小董
  • 波及近5亿用户,万豪酒店集团遭遇超大规模数据泄露

    继上一次大规模数据泄漏事件爆发之后,又有一家酒店集团被证实发生数据库被入侵的消息,可能波及近5亿用户的信息安全,不同的是,这一次酒店自己公示了这一消息。

    FB客服
  • 字节跳动扣响搜索扳机

    无论是什么行业的互联网公司都离不开流量,借助流量的良性循环,互联网企业才能更好的生存和发展,在互联网的世界里,拥有流量就拥有市场的主导权。

    刘旷
  • Python中的系统内置模块#学习猿地

    > 序列化是指可以把python中的数据,以文本或二进制的方式进行转换,并且还能反序列化为原来的数据

    学习猿地
  • 【NLP预训练模型】你finetune BERT的姿势可能不对哦?

    预训练模型BERT是NLP领域如今最大的网红,BERT的预训练过程学习了大量的自然语言中词、句法以及常识等泛领域的知识。因此,在运用BERT到实际的NLP任务中...

    用户1508658
  • Python中的系统内置模块#学习猿地

    > 序列化是指可以把python中的数据,以文本或二进制的方式进行转换,并且还能反序列化为原来的数据

    学习猿地
  • WCF入门(12)

      上次写是小半年前的事情了,还在原来的公司,还在原来的项目,同时认识了不少人。外包公司总是有些不适应的地方,总在很闲和很忙之间徘徊。凌晨2点被客户电话叫醒,只...

    _淡定_
  • Linux 命令大全,都在这里!

    糖豆贴心提醒,本文阅读时间3分钟,文末有秘密! ? 编辑 | 糖豆 图 | 来源网络 ? 1、文件管理catchattrchgrpchmodchow...

    小小科

扫码关注云+社区

领取腾讯云代金券