mysql char最大长度_MySQL中的CHAR和VARCHAR到底支持多长?
最近在研究MySQL的数据类型,我们知道,选择合适的数据类型和数据长度对MySQL的性能影响是不可忽视的,小字段意味着可以MySQL可以读取更多的记录,从而加快查询速度。
网上该问题的答案有很多版本,还是通过实践得出的结论比较靠谱。
先说结论(MySQL版本5.7.27)
CHAR最大255字符,字符集对CHAR没有影响,CHAR()括号内填写最大字符数255
VARCHAR最大65535字节,字符集对VARCHAR有影响
UTF8字符集,每个字符大小3字节,所以65535/3 = 21845,最大支持21845字符,因此VARCHAR()括号中最大填写21845字符
GBK字符集,每个字符大小2字节,所以65535/2 = 32767.5,最大支持32767字符,因此VARCHAR()括号中最大填写32767字符
验证过程
CHAR
UTF8字符集(1个字符占用3个字节)
CREATE TABLE `test`.`demo` (
`id` int(0) UNSIGNED NULL AUTO_INCREMENT,
`title` char(256) NULL,
PRIMARY KEY (`id`)
) CHARACTER SET = utf8 COLLATE = utf8_general_ci;
MySQL提示错误
1074 - Column length too big for column 'title' (max = 255); use BLOB or TEXT instead
GBK字符集(1个字符占用2个字节)
CREATE TABLE `test`.`demo` (
`id` int(0) UNSIGNED NULL AUTO_INCREMENT,
`title` char(256) NULL,
PRIMARY KEY (`id`)
) CHARACTER SET = gbk COLLATE = gbk_chinese_ci;
MySQL提示错误
1074 - Column length too big for column 'title' (max = 255); use BLOB or TEXT instead
结论:CHAR最大长度和字符集没有关系,因此CHAR()括号内填写字符大小,最终数据的字节大小随着字符集不同而不同
VARCHAR
UTF8字符集(1个字符占用3个字节)
CREATE TABLE `test`.`demo` (
`id` int(0) UNSIGNED NULL AUTO_INCREMENT,
`title` varchar(65535) NULL,
PRIMARY KEY (`id`)
) CHARACTER SET = utf8 COLLATE = utf8_general_ci;
MySQL提示错误
1074 - Column length too big for column 'title' (max = 21845); use BLOB or TEXT instead
MySQL提示的最大长度为21845,通过UTF8字符集的大小可知VARCHAR()括号中指的是字符大小。
UTF8MB4字符集(1个字符占用4个字节)
CREATE TABLE `test`.`demo` (
`id` int(0) UNSIGNED NULL AUTO_INCREMENT,
`title` varchar(65535) NULL,
PRIMARY KEY (`id`)
) CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
MySQL提示错误
1074 - Column length too big for column 'title' (max = 16383); use BLOB or TEXT instead
MySQL提示的最大长度为16383,通过UTF8MB4字符集大小可知VARCHAR()括号中指的是字符大小。
更多原创文章,尽在每天进步一点点
mysql char最大长度_MySQL中的CHAR和VARCHAR到底支持多长?相关推荐
- mysql 数值类型 长度_mysql中的数据类型的长度
位,字节,字 --------------------------------------------------------------- 8位(bit)=1字节(Byte),1024字节=1KB: ...
- mysql 联合索引长度_MySQL 中索引的长度的限制
单列索引的长度的限制 (5.6里面默认不能超过767bytes,5.7不超过3072bytes): 起因是256×3-1=767.这个3是字符最大占用空间(utf8).但是在5.5以后,开始支持4个字 ...
- mysql int数据类型长度_mysql中int数据类型长度的问题
在定义了mysql中int数据类型后,后面填写的长度有什么用呢?下文将对mysql中int数据类型长度进行详细的介绍,希望对您能有所帮助. mysql中int数据类型长度最大为11位,最少为4位,不够 ...
- mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天
mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...
- mysql varchar2多少合适_MySQL中varchar最大长度是多少(仅学习)
目录 一. varchar存储规则: 二. varchar和char 的区别: ps :被问到一个问题:MySQL中varchar最大长度是多少? 1.限制规则 2.计算例子 3.varchar物理存 ...
- Mysql修改字段名和长度_mysql中修改表字段名/字段长度/字段类型详解
先来看看常用的方法 MySql的简单语法,常用,却不容易记住.当然,这些Sql语法在各数据库中基本通用.下面列出: 1.增加一个字段: alter table user add COLUMN new1 ...
- mysql数据类型默认长度_mysql数据类型长度
1个字节= 8位 tinyint 为一个字节 2的8次方= 256 所以最多存储到256 日期和时间数据类型 MySQL数据类型 含义 date 3字节,日期,格式:2014-09-18 time ...
- mysql添加临时索引_mysql 中添加索引的三种方法
在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...
- mysql中括号的表达_Mysql中数据类型括号中的数字代表的含义
相信大家不管是看别人的代码,还是自己的代码总会在定义表的数据类型时,会需要在数据类型后面加一个括号,里面写一个参数,例如int(3),smallint(5),char(5)等,但是括号里面的数字到底是 ...
- mysql 存储文本数据类型_MYSQL中的五种数据类型
MYSQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型 字符型 VARCHAR VS CHAR VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要.他们都是用来储存字符串长度 ...
最新文章
- XP 风格的可拖动列、可排序、可改变宽度的DataGrid的例子
- 加密芯片——3DES算法特点与应用注意事项
- lambda函数 java_使用 Java 构建 Lambda 函数 - AWS Lambda
- python安装选项_Python PyInstaller安装和使用教程(详解版)
- 用 TStringList 模拟 将字符串转换为变量的功能 - 回复 flq_00000 和 外来天客 的问题...
- PHP 14:类的实例
- 数据库系统概论第五版(第 5 章 数据库完整性)笔记
- 联想微型计算机拆装图解,笔记本电脑的拆卸图解
- couchbase 报 The Content of this Observable is already released. Subscribe earlier or tune the Couch
- 头文件中,#include使用引号“”和尖括号有什么区别?
- vue 实现评论回复功能
- 微信公众号回复小程序链接
- 软件:股票小助手/盯盘小助手!
- 红帽Linux自带的光盘刻录,cdrecord -- linux下光盘刻录
- [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)
- ad中按钮开关的符号_火速收藏!电工最常用电气元件实物图及对应符号
- PLC学习笔记(三):PLC结构(2)
- 在Windows 11中恢复动态磁贴
- 苹果7如何设置手机邮箱服务器,iphone7 126邮箱如何设定发件服务器
- 原来我还可以这样活:拆掉思维里的墙
热门文章
- 基于C++的采用单链表判断算术表达式的合理性
- SVN“Previous operation has not finished; run 'cleanup' if it was interrupted”错误修复方法
- 研究自动驾驶技术的算法需要哪些知识?
- ROS1 robot path tracking
- Java虚拟机知识点【栈帧】
- 【Mac】nsurlsessiond 后台下载问题的解决方法
- Sql Server 远程过程调用失败
- 关于socket中阻塞,非阻塞,同步,异步的概念
- SQL Server树型结构数据处理的存储过程
- 【学堂在线数据挖掘:理论方法笔记】第一天(3.17)