84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
我看很多MySQL的表里varchar(256),好像就没见过再大的了 varchar的最大值是多少?大于多少就不适合了?要用text
闭关修行中......
根据官方文档,VARCHAR 最多可以是 65535 字节(这也意味着一条记录只有这一个字段,因为 MySQL 一行只能包含 65535 字节)。
然而,无法为这么长的 VARCHAR 做索引,对于 MyISAM,可以对前 1000 个字节做索引,对于 InnoDB,则只有 767 字节。(来源依据)
这里说的是字节,考虑到编码的因素(UTF-8 字符占1-3字节,GBK 字符占两个字节),以及 VARCHAR 所有信息需要多 1 个字节(即空串也占 1 字节),使用 VARCHAR(256) 比较省事。
@xuecan 的回答一句很详细了,我就补充一点。你看到的应该大多是varchar(255),而非256,原因是在4.1以下版本的mysql中varchar最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。
这个问题听说跟编码有关~一般的需求都不会斤斤计较字节数,考虑到文本长度的可扩展性,大文本可以一律使用text.http://my.oschina.net/zimingforever/b...
根据官方文档,VARCHAR 最多可以是 65535 字节(这也意味着一条记录只有这一个字段,因为 MySQL 一行只能包含 65535 字节)。
然而,无法为这么长的 VARCHAR 做索引,对于 MyISAM,可以对前 1000 个字节做索引,对于 InnoDB,则只有 767 字节。(来源依据)
这里说的是字节,考虑到编码的因素(UTF-8 字符占1-3字节,GBK 字符占两个字节),以及 VARCHAR 所有信息需要多 1 个字节(即空串也占 1 字节),使用 VARCHAR(256) 比较省事。
@xuecan 的回答一句很详细了,我就补充一点。你看到的应该大多是varchar(255),而非256,原因是在4.1以下版本的mysql中varchar最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定)。
这个问题听说跟编码有关~一般的需求都不会斤斤计较字节数,考虑到文本长度的可扩展性,大文本可以一律使用text.
http://my.oschina.net/zimingforever/b...