varchar与char的一个主要区别是存储方式的不同

varchar 是变长存储

占用的存储空间 = 存储内容实际大小 + 长度记录位

char 是定长存储

占用的存储空间 = 字段声明的宽度

存储方式对性能是有影响的

例如

分别使用 varchar(10) 与 varchar(255) 定义一个字段,实际存储的字符串为 “abcde”

在存储空间方面,他们没有区别,因为 varchar 是变长存储,只占用实际内容的宽度

但在查询时,他们就有区别了,会占用不同的内存空间

因为执行查询时,mysql为了优化查询,在内存中对字符串会使用固定的宽度,所以定义的宽度越长,就会消耗更多的内存

存储方式对I/O性能也有影响,如果使用 varchar 定义了字段,此字段内容还是更新频繁的,例如开始是个长字符串,后来更新为一个短字符串,因为 varchar 占用空间就是字符串实际宽度,那么这时就产生了碎片空间

而 char 类型是定长存储,就不会产生存储碎片,有更好的I/O性能

不少开发人员对 varchar 与 char 的使用上存在误区,喜欢用 varchar,不喜欢用 char,使用 varchar 时也喜欢直接定义一个很大的宽度,担心实际使用时宽度不够,通过了解他们各自的特点,有助于更好的选择合适的类型

点击下方“阅读原文”查看 文章列表

mysql char varchar 性能_Mysql小细节:varchar与char在性能上的特点相关推荐

  1. mysql text类型效率_mysql使用笔记:vachar,char,text比较

    今天新开始的项目在做数据库设计,发现自己对MySql的varchar类型还不熟悉,故又上网收集资料整理如下. 1.varchar类型的变化 MySQL 数据库的varchar类型在4.1以下的版本中的 ...

  2. mysql int 做排序_Mysql数据库按照varchar字符串类型排序和按照int整型类型排序的区别和注意点及解决方案...

    自己建表的时候,把一个字段类型创建为varchar(2) ,其实应该建为int(2)的.因为我只允许输出数字.这本来也没什么,无非就是占点空间,懒得改了.但是今天在后台发现排序有问题.于是,没办法,改 ...

  3. mysql数据库多少张表会影响性能_mysql数据库多少张表会影响性能

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. mysql 大表 驱动_MySql 小表驱动大表

    在了解之前要先了解对应语法 in 与 exist. in后的括号的表达式结果要求之输出一列字段.与之前的搜索字段匹配,匹配到相同则返回对应行. mysql的执行顺序是先执行子查询,然后执行主查询,用子 ...

  5. java 性能优化小细节

    代码 优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但 ...

  6. MySQL时间字段效率_MYSQL数据库时间字段INT,TIMESTAMP,DATETIME性能效率比较

    正 文: 在数据库设计的时候,我们经常会需要设计时间字段,在MYSQL中,时间字段可以使用int.timestamp.datetime三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高,效率好 ...

  7. mysql的函数用途_MYSQL小函数大用途之-------FIND_IN_SET

    没有前言和解释,直接看怎么用 当前我所知道两种用法: 第一种:和like的作用有点相似,但用这个函数会比like更准确的查到你想要的数据. 前提是当前的字段满足俩个要求: 类型为字符型. 储存格式为- ...

  8. mysql数据库没有密码_MySQL用户数据库没有密码列-在OSX上安装MySQL

    在MySQL 5.7中,删除了mysql.user表字段中的password字段,现在该字段名称为'authentication_string'. 首先选择数据库: mysql>use mysq ...

  9. mysql 统计本月的_mysql 查询当天、本周,本月,上一个月的数据

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

最新文章

  1. spring webflow
  2. shell 删除了hdfs 文件_知识干货 | 大数据全解 HDFS分布式文件系统
  3. Forefront Security For Exchange的反病毒测试
  4. 1029 旧键盘 (20 分)(c语言)
  5. Mysql异常问题排查与处理——mysql的DNS反向解析和客户端网卡重启
  6. day32 管道, 数据共享, 进程池, 回调函数
  7. OO4O的session残留问题
  8. 使用mysql遇到的异常
  9. PostgreSQL GPU 加速(HeteroDB pg_strom) (GPU计算, GPU-DIO-Nvme SSD, 列存, GPU内存缓存)
  10. column分栏布局只是文字布局吗_CSS3 column 分栏
  11. 在 Mac 上的 Keynote 中如何先排版再选照片?
  12. netstat 命令详解
  13. 修订的GRE分类词汇(截屏版)
  14. python检测excel表是否存在空值
  15. 悉尼大学理学院计算机科学,【悉尼大学理学院专业】 - 澳大利亚留学联盟
  16. 千亿商用车车联网市场,智能车载终端企业如何抢食?
  17. 02-AD软件基本使用第二讲(器件介绍)
  18. 基于FPGA的数字交通红绿灯Verilog开发Modelsim仿真
  19. 纯css仿淘宝京东导航菜单栏
  20. xjoi 1542 玩玩拉格朗日四平方和定理

热门文章

  1. windows server 2012 dhcp 配置故障转移
  2. 【Blog.Core开源】将Program升级为.NET6.0版本
  3. 使用 FieldMask 提高 C# gRpc 服务性能
  4. 如何更改 C# Record 构造函数的行为
  5. 如何洗牌 ListT 中的元素?
  6. Hello Blazor:(8)启用深色模式
  7. WPF 模仿QQ音乐首页歌单效果
  8. 基于.NET Core的简单,跨平台,模块化的电子商务系统-SimplCommerce
  9. 云原生时代 给予.NET的机会
  10. 跟我一起学.NetCore之熟悉的接口权限验证不能少(Jwt)