mysql - SQL varchar 字符限制

标签 mysql sql character varchar

我已经阅读了对 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) 变量存储固定长度的 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?)

我还读到 varchar(8,000)varchar(max) 好,所以你建议我使用可变字符长度的类型,尤其是内容。

最佳答案

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.

我不认为你的第二个贴是在谈论 MySQL。

关于mysql - SQL varchar 字符限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23840487/

相关文章:

java - 程序阻止打印这两条消息

java - java中从数据库中获取值

mysql - 从多个表中查找非重复记录

php - 从 MySQL 中的子查询中抓取查询

php - 语法错误,PHP 中的意外 T_CONSTANT_ENCAPSED_STRING

html - 如何在 PhpStorm 中显示隐藏字符,尤其是行分隔符

java - 在java中对二维数组进行排序(对所有字母进行排序)

mysql - 根据总分自动分配排名

java - 选择多行

sql - Rails select() 和 count() 似乎不太好用