首页 > 数据库 >MySQL 中 varchar 的长度

MySQL 中 varchar 的长度

时间:2023-03-07 20:57:15浏览次数:58  
标签:20 字节 varchar MySQL 长度 name

1. varchar(n) 的最大值字符数是多少

varchar 最大可以保存 65535 字节,但是具体保存多少个字符,不同的编码不一样。

MySQL 5.0 之前的版本:n 指的是 n 个字节

n 的最大值是 65535,如果以 utf-8 格式存放数据,最长保存 [n/3] 个汉字(一个汉字占 3 字节),即 varchar(20) 类型的字段只能保存 6 个汉字;

MySQL 5.0 之后的版本:n 指的是 n 个字符

无论是数字,字母还是汉字,都可存放 n 个,即 varchar(20) 类型的字段可以保存 20 个汉字;

utf8mb4 格式:varchar(n) 中每个字符最多占 4 个字节,英文数字占 1 个字节,汉字占 3 个字节。

2. varchar(n) 需要 1 到 2 个额外字节记录保存的字符长度

当 n<=255 的时候,只需要 1 个字节记录即可(数据表示范围:0~28-1,即 0~255);当 n>255 的时候,则需要 2 个字节记录(28~ 216-1,即 256~65535)。

字符的长度保存在第一个或者前两个字节中。所以(对于 utf8mb4 格式):

a. 如果 varchar(20),实际最多需要 1+20*4 个字节的存储空间;

b. 如果 varchar(255),实际最多需要 1+255*4 个字节的存储空间;

c. 如果 varchar(256),实际最多需要 2+256*4 个字节的存储空间;

d. 如果 varchar(500),实际最多需要 2+500*4 个字节的存储空间。

因为 varchar 是存储可变长字符串,所以:

a. 如果 name varchar(8),那么 name='12345678',实际长度为 1+8*1 字节;

b. 如果 name varchar(32),那么 name='12345678',实际长度为 1+8*1 字节;

c. 如果 name varchar(16),那么 name='1234',实际长度为 1+4*1 字节;

基于 MySQL 中 varchar 长度的设置问题 修改

标签:20,字节,varchar,MySQL,长度,name
From: https://www.cnblogs.com/Higurashi-kagome/p/17189546.html

相关文章

  • mysql修改存储引擎,mysql修改表字符集,mysql修改列字符集,mysql修改排序规则,mysql修改行
    【1】修改存储引ALTERTABLE`qipa250_articles`ENGINE=INNODB;ALTERTABLE`qipa250_articles_text`ENGINE=INNODB;ALTERTABLE`qipa250_authors`ENGINE=INNODB;......
  • MySQL用户新建表报1227异常
    1、MySQL8新建用户createuser'firestone'@'%'identifiedby'123456';2、给用户授予test库所有权限grantallprivilegesonfirestone_pretank.*to'firestone'@'%';3......
  • MySQL5.7主从复制教程
     MySQL5.7主从复制教程 ​简述:主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库、事务处理库,从库做查询库。......
  • 13 款炫酷的 MySQL 可视化管理工具!
    13款炫酷的MySQL可视化管理工具!2022-12-2615:07·程序员柠檬橙我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路私信发送1024打包下载10个G编......
  • 【.NET Core 6】使用EF Core 访问Oracle+Mysql+PostgreSQL并进行简单增改操作与性能比
    前言唠嗑一下。都在说去O或者开源,但是对于数据库选型来说,很多人却存在着误区。例如,去O,狭义上讲,是去Oracle数据库。但是从广义上来说,是去Oracle公司产品或者具有漂亮国垄断......
  • mysql 去除重复字符串的函数
    CREATEDEFINER=`root`@`localhost`FUNCTION`deleteManyChar`(in_strvarchar(2000))RETURNSvarchar(2000)CHARSETutf8COLLATEutf8_unicode_ciBEGINDECLAREv_r......
  • 使用Mycat构建MySQL读写分离、主从复制、主从高可用
    数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。 从数据库的角度来说,对于大多数应用来说,从集中到分布,最基本的一个需求不是数据存......
  • MySQL索引Index指南
    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的M......
  • Linux安装MySQL
    演示系统:CentOS-7-x86_64。一、软件下载线上下载:MySQLProductArchives某度下载:wget下载:wgethttps://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.30-1.el7.x86_6......
  • 如何解决MySQL字符集乱码问题
    MySQL自4.1版本推出之后由于中文的特殊性带来的乱码问题也随在互联网行业出现。主要原因就是不同字符集编码不同而产生的。本文简要介绍字符集相关知识及部分乱码情况的解决......