一, 基本介绍  

  char 和 varchar 两类型类似, 用来存储字符串,不同之处来自于他们的保存和检索的差别, char 属于固定的长度字符类型, 而varchar 属于可变长度的字符类型

CHAR(4) 存储需求 VARCHAR(4) 存储需求
'' '    ' 4个字节 '' 1个字节
'ab' 'ab  ' 4个字节 'ab ' 3个字节
'abcd' 'abcd' 4个字节 'abcd' 5个字节
'abcdefg 'abcd' 4个字节 'abcd' 5个字节

二, 实战介绍

创建表:
CREATE TABLE vc (v VARCHAR(4), c CHAR(4))
插入数据 INSERT INTO vc VALUES('ab ','ab ') 查看 SELECT CONCAT(v, '+'),CONCAT(c, '+') FROM vc;

  

  由于char是固定的长度的,所以处理速度比varchar快的多,但是缺点是特别浪费存储空间的,程序也需要对威航空格惊醒处理,所以对于那些长度变化不大并且对查询速度有较高的数据就考虑char类型来存储

三, 存储引擎使用

  •   MyISAM存储引擎: 建议使用固定长度的数据列代替峨边长度的数据列
  •        MEMORY存储引擎: 目前都是用固定长度的数据行存储,因此无论使用char或者varchar列都没有关系.两者都是作为char类型处理
  •         InnoDB 存储引擎: 建议使用varchar类型. 对于innodb数据表.内部的行存储格式没有区分固定长度的可变长度列(所有数据行都是用指向数据列值的头指针), 因此在本质上,使用固定长度的char列不一定比使用可变长度varchar列性能要好,因此, 主要的性能因数是数据行使用的存储总量. 由于char平均占用的口昂见多余varchar, 因此使用varchar来最小化需要处理的数据行的存储总量和磁盘i/o是比较好的

最新文章

  1. 桌面秀:以ubuntu主为的开发桌面环境
  2. 转载文章(Redis中对key的操作)
  3. STL之deque
  4. 1Z0-053 争议题目解析606
  5. es6 import export 与 node 中的module.exports exports
  6. 何为babel / gulp
  7. 第七章 consul docker集群
  8. 程序员DNS知识指南
  9. iOS OC语言: Block底层实现原理 (转载)
  10. OleDb 读取 excel
  11. System.Drawing.Image.Save(Savepath),保存为jpg格式,参数错误,文件0kb解决办法
  12. QT正则表达式
  13. 简单的mvc之三:灵活的路由(上)
  14. 做一个360度看车的效果玩玩(web)
  15. docker 11 docker的commit操作
  16. 自学Python之路-Python核心编程
  17. failed to install tomcat6 service ,check your setting and permissions
  18. 搭建简单SBT工程实践
  19. Latex数学公式中的空格
  20. Error: [ng:areq] Argument 'LoginCtrl' is not a function, got undefined

热门文章

  1. JAVA的编码转换测试
  2. memcpy用法
  3. Java集合类总结 (五)
  4. laravel中firstOrCreate的使用
  5. Java简单实现AOP,Java通用异常拦截,Java与Lamada
  6. oracle取order by的第一条数据
  7. 2019.3.7考试T2 离线数论??
  8. P2045 方格取数加强版 最大费用最大流
  9. linux的发行版
  10. css3之animation制作闪烁文字效果 转