我正在构建一个高度可扩展的应用程序,我需要知道哪个数据类型用于小字符串(50-1000个字符)。我听说VARCHAR是固定大小的,因此可能更快,但是使用TEXT,chars可能存储在单独的CLOB中,而只存储在行数据中的指针。这会更小,但它会有任何重大的性能影响吗?
答案 0 :(得分:4)
VARCHAR列中的值是可变长度字符串。长度可以指定为MySQL 5.0.3之前的0到255之间的值,5.0.3及更高版本中的0到65,535之间的值。
如果你有MySQL 5.0.3或更高版本,并且不需要超过65k字符,那么你使用哪一个并不重要,因为TEXT和VARCHAR在存储中都有可变的大小。如果您有许多少于255个字符的文本,则可以通过选择VARCHAR为这些文本保存一个字节。
但在完全不同的方面,我总是会选择更适合它的数据类型。如果存储文本,即语义上容易超出“标准”大小的文本,则应使用TEXT数据类型。