2011-05-05 49 views
0

我需要一個場在我的表來存儲一些文本。 300個字符是文本的限制。MySQL的 - 場文本

什麼是最好的選擇的選項:varchar (300)text

回答

1

VARCHAR和TEXT列非常相似。該manual說:

在很多方面,你可以把一個BLOB列VARBINARY列,可以是像你一樣大。同樣,您可以將TEXT列視爲VARCHAR列。

這裏有幾個不同點:

  1. TEXT列填充空白末爲索引的目的
  2. TEXT列不能有默認值
  3. VARCHAR列有開銷的只有1個字節如果文本所需的字節數小於256.(特定文本所需的字節數取決於編碼。)TEXT列始終有2個字節的開銷。
  4. 所有文字VARCHAR列計數反對65,535字節行限制。 TEXT列的文本分開存儲,不計入此限制。
1

,如果您有任何理由要擔心內存,varchar將只分配使用的內存。我不知道如何text這樣做,但我會使用varchar (300)

1

使用VARCHAR(300) - 如果規範要求300個字符的限制,你不希望支持這一點。我得找我的答案,但有人稱他們TEXT列遷移到VARCHAR的顯着改善。