2014-01-16 221 views
1

在MySQL中,VARCHAR(1024)VARCHAR(512)之間有什麼區別?如果我的物品永遠不會超過512個字符,那麼使用VARCHAR(1024)會損失什麼?MySQL:VARCHAR(1024)vs VARCHAR(512)

+0

MySQL中沒有'VARCHAR'類型。只有'VARCHAR(N)'類型。對於'MySQL <5.0.3',它是'N <255'和更高版本'N <65535' –

回答

5

不知道你從哪裏得到了這些信息,但是無法用varchar創建一個沒有指定長度的表。它導致語法錯誤。所以你的問題已經過時了。

更新:

沒有。 Varchar的意思是可變長度的數據類型,至少達到創建表時指定的最大長度。這意味着,在每行的varchar列中,會使用一個附加字節來存儲該行中實際存在的字符串的長度。 因此,varchar(1024)和varchar(512)之間的區別在於,當您嘗試插入超過1024或512字節的數據時,數據會被截斷。注意:字節,而不是字符。每個字符使用多少字節取決於您使用的字符集。

+0

抱歉,已更新問題 –

+0

@FireFoxNaruto更新了答案。 – fancyPants

2

實際上有一個區別。如果你操縱大數據,它可能會對性能產生巨大影響。如果使用臨時表,磁盤上的記錄將採用指定的全長而不是可變長度。在這種情況下,高價值會降低請求速度。臨時表可能因各種原因而發生(例如內存已滿,或按組/按順序排列的某些組合)。