SQL varchar字符限制

Eas*_*yBB 3 mysql sql varchar character

我已经阅读了不同的解释,varchar到目前为止我已经得到了这个:

CHAR( )      fixed from 0 to 255 characters long 
VARCHAR( )   variable from 0 to 255 characters long 
TINYTEXT     maximum length of 255 characters 
TEXT         maximum length of 65535 characters 
BLOB         maximum length of 65535 characters 
MEDIUMTEXT   maximum length of 16777215 characters 
MEDIUMBLOB   maximum length of 16777215 characters 
LONGTEXT     maximum length of 4294967295 characters 
LONGBLOB     maximum length of 4294967295 characters
Run Code Online (Sandbox Code Playgroud)

然后这个

  • char(n)变量存储固定长度的字符串,该字符串恰好包含n个字符(因此,n个字节).它们的大小限制为8,000个字符.

  • nchar(n)变量存储固定长度的Unicode字符串,该字符串恰好包含n个字符(因此,2*n个字节).它们的大小限制为4,000个字符.

  • varchar(n)变量存储由大约n个字符组成的非固定长度字符串.它们消耗l + 2个字节的空间,其中l是字符串的实际长度.它们的大小限制为8,000个字符.

  • nvarchar(n)变量存储由大约n个字符组成的非固定长度的Unicode字符串.它们消耗2*l + 2个字节的空间,其中l是字符串的实际长度.它们的大小限制为4,000个字符.
  • varchar(max)变量存储由最多1,073,741,824个字符组成的非固定长度字符串.它们消耗l + 2个字节的空间,其中l是字符串的实际长度.
  • nvarchar(max)变量存储非固定长度的Unicode字符串,最多包含536,870,912个字符.它们占用l*2 + 2个字节的空间,其中l是字符串的实际长度.
  • textntext变量最多可存储2GB的文本数据(分别为ANSI和Unicode),但不能在许多文本操作中使用.因此,它们通常仅用于支持遗留应用程序,并且已被varchar(max)和nvarchar(max)数据类型替换.

那真正的角色是什么varchar?我想知道的原因是我开始一个简单的小问题CMS,我不希望我的SQL DB超重,你可以看到例如

nvarchar(max)[length] * 2 + 2 
nvarchar being 100,000 * 2 + 2 = 200,002 bytes (what is + 2 is it literal?)
Run Code Online (Sandbox Code Playgroud)

另外我读过这个varchar(8,000)varchar(max)你更好的是你会建议我用于变化的字符长度的类型,特别是对于内容.

muk*_*nda 5

http://dev.mysql.com/doc/refman/5.0/en/char.html

  The length can be specified as a value from 0 to 255 before MySQL 5.0.3, 
  and 0 to 65,535 in 5.0.3 and later versions.
Run Code Online (Sandbox Code Playgroud)

我不认为你的第二个粘贴是在讨论MySQL.