当前位置: 首页 > article >正文

char和varchar的区别、varchar(?)中问号部分的含义、索引的作用

char和varchar的区别

char是固定长度类型,当输入字符不满设定的固定长度时依旧占用固定长度的空间,补充空字节。

最大长度为255个字符

  • 优点:效率高,在涉及索引和排序时
  • 缺点:占用空间
  • 使用场景:存储密码的md5值

容易想到,存储固定长度的值时适合用char

        varchar可变长度,只占用实际存储粗的字符串长度加上一个到两个字节(用于记录字符串长度),不会填充空格,存储的字符串长度可变

  • 优点:节约空间,灵活,适合存储长度不定、变化较大的字符串,如:用户输入的内容,地址信息,支持大长度(65535字节),适合动态数据。
  • 缺点:性能较低(在排序和检索时),存储碎片化(频繁更新可能导致碎片化,影响性能),最大长度限制(虽然最大长度很长,但是实际可用长度受限于行的最大长度,通常是8192字节,其他列也会影响)

        适合存储可变长度类型,最好不要存储固定长度类型的数据,因为会额外存储长度信息,所以会浪费存储空间

 varchar(?)中问号部分的含义

        问号部分表示最多存放多长的空间,不同最大长度的varchar存储相同的字符串消耗空间相同,但是更长的最大长度在排序时会消耗更多的内存,以你为order by col采用fixed_length计算col长度。

索引的含义

        索引的出现是为了提高数据的查询效率,就像是书的目录一样,如果没有索引,你想查找一个记录就只能遍历寻找。使用索引就可以快速找到内容,索引需要占用额外的空间,创建的时候也需要消耗额外的时间,在表增删改的时候索引也需要动态维护,这样就占用了数据的维护速度。

建立索引的原则:

  1. 在最频繁使用的、用来缩小查询范围的字段上建立索引
  2. 在频繁使用的、需要排序的字段上建立索引

不适合建立索引的情况:

  1. 对于查询中很少设计的列或者重复值比较多的列,不宜建立索引
  2. 对于一些特殊的数据类型,不适合建立索引,比如text长字符串

http://www.kler.cn/a/526879.html

相关文章:

  • Linux 6.x版本内核的proc目录组织
  • Linux Samba 低版本漏洞(远程控制)复现与剖析
  • vue3中customRef的用法以及使用场景
  • RPC是什么?和HTTP区别?
  • 使用Redis生成全局唯一ID示例
  • 开关电路汇总
  • 使用Pygame制作“俄罗斯方块”游戏
  • Spring Boot项目如何使用MyBatis实现分页查询及其相关原理
  • AJAX案例——图片上传个人信息操作
  • C++中vector追加vector
  • elasticsearch的常见面试题?
  • 亚博microros小车-原生ubuntu支持系列:15 激光雷达巡逻
  • 机器学习7-全连接神经网络3-过拟合与超参数
  • 信号模块--simulink操作
  • [Effective C++]条款53-55 杂项讨论
  • Linux第104步_基于AP3216C之I2C实验
  • Python学习之旅:进阶阶段(七)数据结构-计数器(collections.Counter)
  • TCP编程
  • 【Linux】日志设计模式与实现
  • DeepSeek Janus-Pro:多模态AI模型的突破与创新
  • 集群部署时的分布式 Session 如何实现?
  • VUE组件如何开发
  • jmap命令详解
  • 一维二维前缀和、差分,c++
  • 二叉树的遍历
  • pytorch实现变分自编码器