VARCHAR类型用于存储变长字符串,它会删除末尾的所有空格,它比定长字符串更省空间,因为它仅使用必要的空间(越短的字符串占用越少),VARCHAR会用1或2个额外字节记录字符串长度(如果字符串长度不大于255,用一个字节记录长度,大于255,小于65535,用两个字节记录),VARCHAR节省了空间,因此对性能是有帮助的,但是因为行是变长的,所以每次UPDATE时会重新计算字符串长度,会比定长多做额外工作。因此不是说VARCHAR就一定能提升性能,同样要分使用场景,如果字符串的最大长度比平均长度大很多,且列的更新很少时则适合用VARCHAR。注意InnoDB会把过长的VARCHAR存储为BLOB,通常人们喜欢将IP地址存储为VARCHAR型,其实IP地址是32位二进制表示的,你可以转为十进制表示,因而不是字符串,用小数是将它分为四段便于阅读。

CHAR是定长的,每个列无论字符串长度大小都会分配固定存储空间,CHAR适合存储字符很短,或者所有值接近一个长度时,如存储MD5码、SESSION_ID等,对于经常变更的数据CHAR也比VARCHAR好,再一个是对于非常短的列,CHAR比VARCHAR更节省空间,例如使用CHAR(1)和VARCHAR(1)来存储Y或N时,CHAR需要一个字符,而VARCHAR需要两个,因为还有一个长度字节。

  1. char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。
  2. 同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。
  3. 超过char和varchar的n设置后,字符串会被截断。
  4. char的上限为255字节,varchar的上限65535字节,text的上限为65535。
  5. char在存储的时候会截断尾部的空格,varchar和text不会。
  6. varchar会使用1-2个字节来存储长度,text不会。
  7. 效率来说基本是char>varchar>text,但是如果使用的是Innodb引擎的话,推荐使用varchar代替char。char和varchar可以有默认值,text不能指定默认值

MySQL字符串类型的更多相关文章

  1. MySQL字符串类型转换时间类型

    如果MySQL数据库里面的某个时间用的是varchar(或者是char)类型的,这样可以方便系统使用而不用随便转换时间类型来适应数据库版本的不同,当要把取出的字段转换成时间类型的时候,可以按如下方法操 ...

  2. mysql字符串类型数据

    字符串类型是在数据库中存储字符串的数据类型,字符串类型包括char,varchar,text,enum和set. OK,我们来一个一个的看下上面提到的几种类型. char类型和varchar类型 ch ...

  3. 学习笔记:MySQL字符串类型

    字符串类型 a)         char和varchar 1.都需要指定字符的长度,char中的长度是字符的长度,而varchar的长度是字节的长度 2. char中指定的长度就是实际占用的长度,而 ...

  4. mysql 字符串类型 char varchar

    字符类型用在存储名字.邮箱地址.家庭住址等描述性数据   char指的是定长字符,varchar指的是变长字符 #官网:https://dev.mysql.com/doc/refman/5.7/en/ ...

  5. mysql字符串类型(set类型)

    集合 set  不定想项选 类似于 enum枚举,在定义时,也需要指定其已有值! 与字符串相比,优势是: 1, 也是采用 整数进行管理的!采用位运算,从第一位开始为1,逐一x2! 2, 每个集合类型8 ...

  6. mysql字符串类型(枚举类型)

    原文链接:https://blog.csdn.net/qq_34530405/article/details/81738907 本文记录MySql数据库中enum类型数据的使用细节和注意事项. 首先在 ...

  7. mysql字符串类型(char,varchar)

    原文链接:https://blog.csdn.net/puqutogether/article/details/45648879 MySQL中的字符串有两个常用的类型:char和varchar,二者各 ...

  8. mysql字符串类型(TEXT 类型)

    TEXT 类型 TEXT 列保存非二进制字符串,如文章内容.评论等.当保存或查询 TEXT 列的值时,不删除尾部空格. TEXT 类型分为 4 种:TINYTEXT.TEXT.MEDIUMTEXT 和 ...

  9. mysql 字符串类型数字排序

    排序字段+0,类似  Java 把 其他类型转换成字符串 比如 +“”: SELECT    b.tag_value AS NAME,    sum(b.uv) ASVALUE FROM    met ...

随机推荐

  1. R语言 关联规则

    在用R语言做关联规则分析之前,我们先了解下关联规则的相关定义和解释. 关联规则的用途是从数据背后发现事物之间可能存在的关联或者联系,是无监督的机器学习方法,用于知识发现,而非预测. 关联规则挖掘过程主 ...

  2. Android版本和API Level的对应关系

    Platform Version API Level VERSION_CODE Notes Android 4.4 KITKAT Platform Highlights Android 4.3 JEL ...

  3. Weblogic概念与基础

    WebLogic Server 1.BEA WebLogic Server 1.Domain:域是个逻辑概念,用来组织管理一系列的应用服务器实例,中心配置文件Config.xml. 2.Cluster ...

  4. phonegap 随笔

    开发者论坛 http://bbs.phonegapcn.com/forum.php phone调用android本地方法 http://blog.csdn.net/crazyman2010/artic ...

  5. uoj 55 紫荆花之恋 动态点分治+替罪羊式重构+treap

    每插入一个点,直接把它当做重心插入原树,当做是动态点分树一样维护 但这样深度会越来越大,所以我们用类似替罪羊的方法 当树失去平衡时,对子树进行一次点分,保证复杂度 #include <cstdi ...

  6. 常用网页标签重置CSS

    做前端开发时常需要将网页中所有标签的格式清空,从而使各个浏览器标签样式一样.以下是网络上常见的CSS代码 /* =s Reset (by YUI 3) */ html{color:#000;} bod ...

  7. easyui datagrid分页

    datagrid分页设置 pagination="true" 貌似是不行的!  只是显示分页工具栏 没有达到分页效果 前端 $(function (){ var p = $('#d ...

  8. 移动端audio自动播放问题

    中秋临近,心血来潮想做个手机端贺卡,以前接触的移动端较少,虽然是个简单的贺卡,其实也蛮多坑的,简略说一下在制作贺卡的过程遇到的坑: 一:移动端的屏幕大小不能算作body的大小,因为手机浏览器头部都有网 ...

  9. linux 命令展示该目录下的所有子目录及文件结构 tree

    1. apt-get install tree 2. tree -d -L 1 解释: tree :显示目录树: -d : 只显示目录: -L 1 : 选择显示的目录深度为1 , 只显示一层深度. 目 ...

  10. 安装aptana(1)

    以前在myeclipse8.5上装了aptana,现在用myeclipse2014了,但是用原来的方法没有安装上,网上搜了下,发现都是老的方法,对新版的myeclipse已经不适用了,下面是转载的一篇 ...