网站首页 > 技术文章 正文
前言
相信绝大多数小伙伴都知道在mysql中,字符串使用varchar和char来定义,但结合阿海自身的经历,发现大家一般都是使用varchar来定义字符串的,char类型的出场率似乎不高,但事物存在必然有其原因,今天阿海就给大家分享一下mysql中varchar和char之间的区别。
varchar和char的各自特性和区别
我们可以从以下三个方面入手,对二者的特性和区别进行一定的了解:
1.从长度是否可变来看,char 是一个固定长度的字符串,而varchar 是一个可变长度的字符串,假设声明一个 char(10)的长度如果存储字符串“abc”,虽然实际字符长度只有 3,但是 char 还是会占 10 个字节长度。同样,如果用 varchar 存储,那它只会使用 3 个字符的实际长度来存储;
2.从存储的效率高低来看,char 类型每次修改以后存储空间的长度不变,所以效率更高,varchar每次修改数据都需要更新存储空间长度,效率相对较低;
3.从占用的存储空间大小来看,char 不管实际数据大小,存储空间是固定的,而 varchar存储空间等于实际数据长度,所以varchar实际存储,空间的使用要比 char 更小。
结论
从以上分析可知,我们可以得出以下结论:
1.char类型更适合存储比较短的且是固定长度的字符串,比如身份证号码(18位),手机号码(11位);
2.varchar则适合存储可变长度的字符串,比如在定义产品简介字段时,我们可以将其长度给大些,留给冗余(避免实际生产环境该字段值超过定义长度,报error case),而不用担心其会占用过多存储空间。
好了,这次就分享到这里,大家如果有任何工作,面试上的问题或疑惑,欢迎私信阿海!
猜你喜欢
- 2025-07-02 「嵌入式秘术」相约榨干SysTick的每一滴汁水
- 2025-07-02 WIDECHAR函数教程(widechar函数没有为什么)
- 2025-07-02 计算机二级考试(计算机二级考试费用)
- 2025-07-02 Mysql中int(10)和char(10)以及varchar(10)区别
- 2025-07-02 MySQL选择合适的数据类型(char与varchar|text与blob)
- 2025-07-02 在 WinCC 中如何显示和操作 S7-300/400 中的 CHAR 和 STRING 类型的数据
- 2025-07-02 在 WinCC 中操作 S7-1200/1500 中的 CHAR 和 STRING 类型的数据
- 2025-07-02 to_char()、to_date()的区别(to_date和to_timestamp)
- 2025-07-02 30.MySQL中char和varchar的比较(mysql varchar和nvarchar)
- 2025-07-02 8、char为什么能存贮一个汉字?(char为什么能存储汉字)
- 最近发表
-
- count(*)、count1(1)、count(主键)、count(字段) 哪个更快?
- 深入探索 Spring Boot3 中 MyBatis 的 association 标签用法
- js异步操作 Promise fetch API 带来的网络请求变革—仙盟创梦IDE
- HTTP状态码超详细说明_http 状态码有哪些
- 聊聊跨域的原理与解决方法_跨域解决方案及原理
- 告别懵圈!产品新人的接口文档轻松入门指南
- 在Javaweb中实现发送简单邮件_java web发布
- 优化必备基础:Oracle中常见的三种表连接方式
- Oracle常用工具使用 - AWR_oracle工具有哪些
- 搭载USB 3.1接口:msi 微星 发布 990FXA Gaming 游戏主板
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)