23、varchar与char的区别

varchar与char的区别

char的特点

  1. char表示定长字符串,长度是固定的;
  2. 如果插入数据的长度小于char的固定长度时,则用空格填充;
  3. 因为长度固定,所以存取速度要比varchar快很多,甚至能快50%,
  4. 但正因为其长度固定,所以会占据多余的空间,是空间换时间的做法;
  5. 对于char来说,最多能存放的字符个数为255,和编码无关

varchar的特点

  1. varchar表示可变长字符串,长度是可变的;
  2. 插入的数据是多长,就按照多长来存储;
  3. varchar在存取方面与char相反,它存取慢,因为长度不固定,但正因如此,不占据多余的空间,是时间换空间的做法;
  4. 对于varchar来说,最多能存放的字符个数为65532

总之,结合性能角度(char更快)和节省磁盘空间角度(varchar更小),具体情况还需具体来设计数据库才是妥当的做法

相关推荐
霖霖总总11 小时前
[小技巧41]InnoDB 如何判断一行数据是否可见?MVCC 可见性机制深度解析
数据库·mysql
偷星星的贼1112 小时前
数据分析与科学计算
jvm·数据库·python
Suchadar12 小时前
数据库DATABSE——sql server
数据库
檀越剑指大厂13 小时前
迁移之路的隐形陷阱:破解Oracle数据库国产化替代的核心痛点与策略
数据库·oracle
wWYy.13 小时前
详解redis(1)
数据库·redis·缓存
todoitbo13 小时前
Oracle 迁移到 KingbaseES:从问题词到成本的技术拆解
数据库·oracle·kingbasees
会游泳的石头14 小时前
Java 异步事务完成后的监听器:原理、实现与应用场景
java·开发语言·数据库
数智工坊14 小时前
【操作系统-IO调度】
java·服务器·数据库
星梦清河14 小时前
MySQL—分组函数
数据库·mysql
霖霖总总14 小时前
[小技巧33]MySQL 事务持久化的一致性保障:binlog 与 redo log 的两阶段提交机制解析
数据库·mysql