char的长度是不可变的,而varchar的长度是可变的,也就是说,

定义一个char[10]和varchar[10],如果存进去的是‘csdn’, 那么char所占的长度依然为10,

除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,

char类型的要用trim()去掉多余的空格,而varchar是不需要的。

1、char与varchar的区别

char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;

但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,

可谓是以空间换取时间效率,而varchar是以空间效率为首位的。

再者,char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;

而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节。 但是设定的编码不一样字节则不一样,

如GBK不管是英文还是中文都是占用两个字节,如果使用utf-8则最起码一个字符是三个字节,有可能四个或者五个。

所有一个字符对于几个字节根据不同的编码来判断的 两者的存储数据都非unicode的字符数据。

2、varchar与text

char与varchar的区别的更多相关文章

  1. mysql中char与varchar的区别分析(补充一句,int和integer没区别)

    转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

  2. MYSQL—— char 与 varchar的区别!

    一.char 和 varchar 的区别: 1)取值范围: char:取值范围:0~255 varchar:取值范围:0~65535 2)空间占用与速度: char: 定长字符串,占用空间大,速度快, ...

  3. 简单了解char和varchar的区别

    一.CHAR和 VARCHAR的区别? 1.CHAR有固定的长度,VARCHAR属于可变长度的字符类型. 2.比如,写入内容到CHAR(10)里,如果内容占用的空间不够10,则会用空格字符补足. 二. ...

  4. 通过char与varchar的区别,学习可变长的字符类型

    转自http://www.uphtm.com/database/232.html 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

  5. 面试现场:说说char 和 varchar的区别你了解多少?

    Hi,大家好!我是白日梦!本文是MySQL专题的第 26 篇. 下文还是白日梦以自导自演的方式,围绕"说说char 和 varchar的区别你了解多少?"展开本话题.看看你能抗到第 ...

  6. 面试官疯狂问我:char和varchar的区别 怎么办?愣着干嘛?进来白嫖啊!

    MySQL的修仙之路,图文谈谈如何学MySQL.如何进阶!(已发布) 面前突击!33道数据库高频面试题,你值得拥有!(已发布) 大家常说的基数是什么?(已发布) 讲讲什么是慢查!如何监控?如何排查?( ...

  7. 【面试虐菜】—— Oracle中CHAR、VARCHAR的区别

    1.CHAR. CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取 ...

  8. mysql中char与varchar的区别

    在建立数据库表结构的时候,为了给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,这两种选择有时候让人很纠结,今天想总结一下它们两者的区别,明确一下选择塔 ...

  9. MySQL数据库char与varchar的区别分析及使用建议

    在数据库中,字符 型的数据是最多的,可以占到整个数据库的80%以上.为此正确处理字符型的数据,对于提高数据库的性能有很大的作用.在字符型数据中,用的最多的就是 Char与Varchar两种类型.前面的 ...

随机推荐

  1. vue+elementui搭建后台管理界面

    1 会话存储 使用html5的 sessionStorage 对象临时保存会话 // 保存会话 sessionStorage.setItem('user', username) // 删除会话 ses ...

  2. SDU&PDU

    SDU(service Data Unit):服务数据单元,又叫业务数据单元,是指定层的用户服务的数据集,传送到接收方的时候同一协议层时数据没有发生变化,即业务部分,然后发给下层之后,下层将其封装在P ...

  3. 11.tensorboard网络结构

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 载入数据集 mnist = i ...

  4. [CEOI1999]Sightseeing trip(Floyed)

    [CEOI1999]Sightseeing trip Description There is a travel agency in Adelton town on Zanzibar island. ...

  5. Ubuntu18.04安装UHD+GNU Radio后找不到USRP B210解决办法

    一.在终端中输入uhd_usrp_probe,提示USB错误,没有权限. 解决办法: 输入 : sudo uhd_usrp_probe 二.GNU Radio中出现找不到设备,地址为空的错误: 错误原 ...

  6. 逻辑卷管理(LVM)

    LVM:Logical Volume Management 逻辑卷管理 LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. 传统磁盘管理:我们上层是直接访问文件系统,从而对底层的物 ...

  7. MySQL 关于存储过程的操作

    -- 存储过程 --> 一组为了完成特定功能的SQL语句集 -- IN 传入参数 delimiter // create procedure mysql ( IN id int ) begin ...

  8. 重新学习ESP32(零)之环境搭建——转载——windows平台

    原文来自:https://www.makingfun.xyz/2018/09/18/esp32-hello-world/ 前言 前几天看到乐鑫的公众号推送了一篇文章,说是ESP8266最新的SDK风格 ...

  9. java+文件批量下载

    这篇文章主要介绍了Java实现批量下载选中文件功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下 1.在action中定义变量 private List<String> downLoa ...

  10. js拖拽文件夹上传

    由于项目需要上传文件到服务器,于是便在文件上传的基础上增加了拖拽上传.拖拽上传当然属于文件上传的一部分,只不过在文件上传的基础上增加了拖拽的界面,主要在于前台的交互, 从拖拽的文件中获取文件列表然后调 ...