`

MySQL VARCHAR字段最大长度到底是多少

阅读更多
  • varchar(n),n表示什么?

MySQL5.0.3之前varchar(n)这里的n表示字节数

MySQL5.0.3之后varchar(n)这里的n表示字符数,比如varchar(200),不管是英文还是中文都可以存放200个

 

  • n最大可以是多少

  • MySQL行长度

MySQL要求一个行定义长度不能超过65535个字节,不包括text、blob等大字段类型,varchar长度受此长度限制,和其他非大字段加起来不能超过65535个字节.

超过以上限制则会报错:

 

 

drop table if EXISTS test1111;
create table test1111(
 id char(255) null,
content varchar(21830) null
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

 

 

[Err] 1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

  •  varchar(n)占用几个字节

varchar(n)占用几个字节跟字符集有关系:

字符类型若为gbk,每个字符占用2个字节

字符类型若为utf8,每个字符最多占用3个字节

  • varchar最大长度可以是多少

根据字符集,字符类型若为gbk,每个字符占用2个字节,最大长度不能超过32766,字符类型若为utf8,每个字符最多占用3个字节,最大长度不能超过21845,若超过这个限制,则会自动将varchar类型转为mediumtext或longtext,例如:

 

drop table if EXISTS test1111;
create table test1111(
 id char(255) null,
content varchar(63000) null
);
desc test1111;

结果:
CREATE TABLE `test1111` (
  `id` char(255) DEFAULT NULL,
  `content` mediumtext
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

下一篇将讲述utf8编码原理,utf8为什么被推荐,优势在哪里?

 

 

分享到:
评论

相关推荐

    mysql VARCHAR的最大长度到底是多少

    然而,这65,535字节的限制并非VARCHAR字段能够实际存储的最大字符数,因为它还需要考虑到行的总长度限制以及数据页的结构。在InnoDB存储引擎中,每行数据的总长度不能超过65,535字节,包括所有列的值。这包括NULL...

    Mysql varchar大小长度问题介绍

    如果VARCHAR字段的定义长度超过了上述限制,MySQL会将其自动转换为TEXT类型,此时每个字段占用的定义长度不再是根据内容长度变化,而是固定为11字节,但这已经不再是VARCHAR的行为。 在MySQL 4.0及更低版本中,...

    MySql所有字段类型及长度范围

    ### MySQL所有字段类型及长度范围详解 在数据库设计与应用开发过程中,选择合适的字段类型对于确保数据的准确存储和高效处理至关重要。MySQL提供了丰富的数据类型,涵盖了数字、字符串、日期时间等多种类别,满足了...

    GP数据库表结构转mysql库、oracle库 varchar类型字段长度批量处理excel_MYSQL_oracle_数据库

    对于varchar字段,可能需要在转换前对源数据进行分析,确定实际的最大长度,然后在MySQL中设置合适的varchar长度,以平衡存储效率和数据完整性。 文件“mpp数据库长度转换.xls”很可能包含了一个表格,列出了源...

    Mysql中varchar长度设置方法

    MySQL5的文档,其中对varchar字段类型这样描述:varchar(m) 变长字符串。M 表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定,最大有效长度是65,532字节)。 为何会...

    MySQL动态修改varchar长度的方法

    然而,在数据库设计过程中,有时可能会遇到需要动态修改`VARCHAR`字段长度的情况,这通常是由于初期设计时对数据需求估计不足或者后期业务变化导致的。 动态修改`VARCHAR`字段长度的SQL语句如下: ```sql ALTER ...

    ASP技术常遇问题解答-MYSQL各字段的长度是多少?.zip

    在ASP编程中,正确地设置这些字段属性,能确保数据存储的正确性,并避免因字段长度不足导致的数据截断错误。因此,理解并掌握MySQL中的字段类型和长度限制,对于任何ASP开发者都是必备的基础知识。

    php判断输入不超过mysql的varchar字段的长度范围

    在实际应用中,我们通常需要在将数据插入数据库之前先进行长度验证,以确保不会插入超出varchar字段长度限制的数据。这样可以避免数据插入失败或者数据被截断的问题。比如,如果我们的数据库字段定义为varchar(10),...

    25 对于VARCHAR这种变长字段,在磁盘上到底是如何存储的.pdf

    VARCHAR类型的字段长度可以是0到65535字节之间,具体长度取决于具体实现。与之相对的是定长字段,如CHAR类型,无论存储多少字符,占用的长度是固定的。 3. 磁盘上变长数据的存储:当一行包含变长字段的数据被写入到...

    对比MySQL中int、char以及varchar的性能

    然而,无论是char(c8)、varchar(s8)还是它们的4字节版本,它们之间的性能差距并不明显,这表明在全表扫描的情况下,数据的长度对查询速度的影响不大。 当为这些字段创建索引后,性能差距进一步缩小。char和varchar...

    Mysql的longblob字段插入数据问题解决

    在使用mysql的过程中,有个问题就是mysql的优化,mysql中longblob字段在5.5版本中默认的为1M。 想改变这个问题,需要注意几点: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (2054817 > ...

    行业-25 对于VARCHAR这种变长字段,在磁盘上到底是如何存储的.rar

    这是因为数据库需要知道每个VARCHAR字段包含多少字符,以便正确地解析数据。 1. 长度信息:这部分通常存储在数据行的起始位置,用一个或多个字节表示字符串的实际长度。例如,如果最大长度是255,可能只需要1字节来...

    MySQL字段类型说明

    * VARCHAR(M):一个可变长度的字符串类型,最大长度是 M。 * TEXT:一个长文本类型。 * ENUM:一个枚举类型,允许在一个集合中选择一个值。 * SET:一个集合类型,允许在一个集合中选择多个值。 MySQL 字段类型可以...

    MySQL字段类型列表

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,其字段类型设计得非常灵活,以适应各种数据存储需求。在MySQL中,字段类型决定了数据的存储方式、大小和格式。以下是对MySQL5中常见字段类型的详细说明: 1. **...

    PostgreSQL与mysql字段对比.docx

    在MySQL中,VARCHAR类型用于存储长度可变的字符串,最大长度由n指定。末尾的空格不存储。 ENUM数据类型:在MySQL中,ENUM类型用于存储一种串对象,它的值只能是从值列表value1,value2,...中选择的一个值。 SET...

Global site tag (gtag.js) - Google Analytics