2011-07-01 82 views
7

我知道,因爲MySQL 5,VARCHAR的長度可以達到65,000。 VARCHAR以內聯方式存儲,這意味着更快的檢索,而不是TEXT,它存儲在表格之外。也就是說,文檔指出MySQL將會把LONG VARCHAR看作TEXTMySQL在哪一點開始處理像TEXT cols這樣的VARCHAR cols?

根據this Source

從存儲前瞻性BLOB,TEXT爲 以及LONG VARCHAR由Innodb的處理相同 方式。這就是爲什麼Innodb 手冊稱之爲「長列」而不是BLOB的 。

MySQL什麼時候開始像TEXT一樣對待VARCHAR? MySQL在什麼字符數上做了區分,並且VARCHAR停止內聯存儲?

+1

在猜測,我會想象當'VARCHAR'移動到長格式,它超越了舊的限制,這是255個字符,我相信以後這將是這將是 - 檢查舊限制。 – Orbling

回答

5

簡短回答:「long」VARCHAR是一個普通的VARCHAR,並且是內聯的。

MySQL不會神奇地開始將直VARCHAR視爲文本類型。它將始終以內聯方式存儲。使用5.0.3時,VARCHAR的上限被放寬到65,535字節。如果超過255個字符,它們還佔用2個字節的標題。此限制仍適用於65,535字節的最大行大小。 LONG VARCHAR實際上是一種與MEDIUMTEXT相反的不同類型。

參見:http://dev.mysql.com/doc/refman/5.0/en/char.htmlhttp://dev.mysql.com/doc/refman/5.0/en/blob.html