MYSQL中 CHAR和VARCHAR的对比

news/2025/2/14 3:32:03/

众所周知(As far as we know.....)

VARCHAR 是变长数据类型 CHAR 是定长数据类型

不好意思 真不会写引子 我们直接开始吧

在MYSQL层的区别

最大长度:char是255,varchar是65535

尾部空格:char会将尾随空格去掉,而varchar不会。
因为存储时,char会用空格填充至指定长度,所以取出时需要去除空格。而且判断的时候,"a"和"a "

是一样的(会被去重)

储存时额外数据:varchar会占用额外的1~2字节来存储字符串长度。如果最大长度超过255,就需要2字节,否则1字节。(可以看一下这篇文章---一行数据是如何储存的)

存储行为:char和varchar都会存储字符串长度 对于CHAR(N)字段,如果实际存储数据小于N字节,会填充空格到N个字节。

性能对比:你看啊 如果我们定义CHAR(100) VARCHAR(100) 使用的时候如果没填满这个类型 就是只存储了 几十或者十几的 字符 CHAR就要用空格把它填成100字符大小的数据 而VARCHAR只用存储一字节的实际储存长度(这部分还是建议看一下这篇博客-传送链接) 也就是说 char填充空格可能导致浪费存储空间,进而导致性能下降。因为char多存储一些空格,意味着需要从磁盘读写更多的数据、耗费更多内存、查找数据时删除空格可能也会耗费一些CPU性能。

绝大部分情况都是VARCHAR比CHAR的性能更高的 但是有一种极端情况 我定义一列CHAR(18)

然后用它储存身份证号 也就是说频繁修改 也一直是18字符长度的 也就不会有空格填补 就不会有性能方面的浪费


http://www.ppmy.cn/news/744267.html

相关文章

搜索引擎——倒排索引

搜索引擎——倒排索引 什么是倒排索引 倒排索引(Inverted Index)是一种用于快速查找文档的数据结构,常用于搜索引擎中。与正向索引(Forward Index)相反,倒排索引是基于单词或术语来组织文档的索引。 倒排…

纪念曾经拥有的6D

2013年4月24日购买的佳能6D,它是我第一部全画幅的数码相机。我为它配了Sigma 35/1.4和Canon EF70-200 F4 IS。对它的画质和对焦我很是满意。虽然,一直有很多人在吐槽它的对焦系统。在这3年中用这部机器我拍了好多好多我喜欢的片子。尽管后来我也拥有了So…

【摄影】棚拍联机拍摄

电脑:windows10 64位 相机:佳能6D2 软件:capture one12 线缆:刀头联机线 1、安装capture one12 网上有很多破解版可以下载,具体可以百度。安装后出现一个问题,在此说明,防止后人采坑 安装完…

T-LESS:制作RGBD 6D姿态数据集和标签

T-LESS: An RGB-D Dataset for 6D Pose Estimation of Texture-less Objects 该数据集网址已公开:http://cmp.felk.cvut.cz/t-less/ 摘要:该数据集采集的目标为工业应用、纹理很少的目标,同时缺乏区别性的颜色,且目标具有对称性和…

【雕爷学编程】Arduino动手做(153)---2.4寸TFT液晶触摸屏模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

【Python爬虫开发基础⑩】selenium概述

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~ 💡往期推荐: ⭐️前面比较重要的基础内容: 【Python爬…

基本常用防火墙设置端口命令

基本常用防火墙设置端口命令 每次修改完端口,都要重启以生效 # 1, 查看防火墙状态:firewall-cmd --statesystemctl status firewalld.service# 2, 开启防火墙:systemctl start firewalld.service (注意&am…

手机防火墙功能表

来电拦截 信息拦截 日程模式 情景模式 密码保护 导入配置/导出配置 拦截记录 流氓软件监测 号码归属显示