为什么我在MySQL中使用VARCHAR over TEXT?

时间:2010-04-03 12:13:00

标签: mysql

我注意到在MySQL中,VARCHAR和TEXT都提供可变大小的数据。好吧,VARCHAR在数据存储方面更有效率,但TEXT MEDIUMTEXT和LONGTEXT仍然提供了更多的潜力。那么,VARCHAR的真正用途是什么?

1 个答案:

答案 0 :(得分:8)

首先,您应该阅读MySQL手册的10.4. String Types部分:它将为您提供您正在寻找的所有信息:


几个重要的区别:

  • 可包含的文字数量的差异:
    • varchar的大小限制很小;对于最新版本的MySQL,它是64 KB,对于一行中所有varchar列的总数 - 并没有那么多。
    • TEXT几乎没有限制,因为它们可以包含类似2 ^ 32字节的内容。
  • 如果我没有错误,索引和排序会有所不同;引用the page about TEXT
    • 关于排序:“排序时仅使用列的前max_sort_length个字节。
    • 并且,关于性能:“使用临时表处理的查询结果中的BLOB或TEXT列的实例会导致服务器在磁盘而不是内存中使用表”< / LI>


考虑到这些信息,如果您确定您的字符串不会太长,并且您始终能够将它们存储在varchar中,我会使用varchar。