SQL varchar 字符限制

3

我已经阅读了不同的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
  • char(n)变量存储由n个字符(因此为n个字节)组成的固定长度字符串。它们的大小限制为8,000个字符。

  • nchar(n)变量存储由n个字符(因此为2*n个字节)组成的固定长度Unicode字符串。它们的大小限制为4,000个字符。

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

  • nvarchar(n)变量存储非固定长度Unicode字符串,大约包含n个字符。它们消耗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数据库负载过重,正如你可以看到的那样。

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

我读到过varchar(8,000)varchar(max)更好,那么对于长度可变的字符,特别是内容,您建议我使用哪种类型?

你在哪里读到 varchar(8,000)varchar(max) 更好? - Dour High Arch
@OP:http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html - Ravinder Reddy
3
你似乎混淆了不同数据库的文档。第一份文档似乎是关于MySQL的,而项目符号则是关于SQL Server的。 - Gordon Linoff
可能是我在谷歌上搜索时没有意识到其中的区别,真是让人烦恼。 - EasyBB
1个回答

7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接