素材牛VIP会员
MySQL的VARCHAR最大值是多少?
 q1***51  分类:SQL代码  人气:672  回帖:3  发布于6年前 收藏

我看很多MySQL的表里varchar(256),好像就没见过再大的了
varchar的最大值是多少?大于多少就不适合了?要用text

 标签:mysql

讨论这个帖子(3)垃圾回帖将一律封号处理……

Lv6 码匠
爱***粉 移动开发工程师 6年前#1

这个问题听说跟编码有关~一般的需求都不会斤斤计较字节数,考虑到文本长度的可扩展性,大文本可以一律使用text.
http://my.oschina.net/zimingforever/b...

Lv5 码农
Ja***jz 其它 6年前#2

根据官方文档,VARCHAR 最多可以是 65535 字节(这也意味着一条记录只有这一个字段,因为 MySQL 一行只能包含 65535 字节)。

然而,无法为这么长的 VARCHAR 做索引,对于 MyISAM,可以对前 1000 个字节做索引,对于 InnoDB,则只有 767 字节。(来源依据)

这里说的是字节,考虑到编码的因素(UTF-8 字符占1-3字节,GBK 字符占两个字节),以及 VARCHAR 所有信息需要多 1 个字节(即空串也占 1 字节),使用 VARCHAR(256) 比较省事。

Lv4 码徒
骑***火 技术总监 6年前#3

@xuecan 的回答一句很详细了,我就补充一点。你看到的应该大多是varchar(255),而非256,原因是在4.1以下版本的mysql中varchar最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取