2
我看過的varchar
不同的解釋,到目前爲止,我已經得到這樣的:SQL 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字節)。它們的大小限制在8000個字符以內。
的nchar(n)的變量存儲固定長度的Unicode字符串conisisting恰好n個字符(和,因此,2 * n個字節)。它們的大小限制爲4,000個字符。
varchar(n)變量存儲由大約n個字符組成的非固定長度字符串。它們消耗l + 2個字節的空間,其中l是字符串的實際長度。它們的大小限制在8000個字符以內。
- 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是字符串的實際長度。
- text and ntext變量最多可以存儲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)'更好? –
@OP:http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html –
@EasyBB。 。 。您顯然混淆了來自不同數據庫的文檔。第一個文檔似乎指的是MySQL,而且項目符號指向了SQL Server。 –