2016-08-20 58 views
-1

数据类型有什么区别var chartext在数据库设计中?varchar和text有什么区别?

+0

http://dev.mysql.com/doc/refman/5.7/en/string-types.html –

+2

可能重复[varchar vs text - MySQL](http://stackoverflow.com/questions/5739172/ varchar-vs-text-mysql) – Wickramaranga

+1

@Wickramaranga - 那个特定的问答是多个问题和可疑答案的混杂。我添加了[_my自己的答案](http://stackoverflow.com/a/39059399/1766831),它确实解决了当前的问题。 –

回答

0

主要区别在于TEXT的固定最大尺寸为2¹⁶-1 = 65535个字符。 VARCHAR具有可变的最大尺寸M,最高为M =2¹⁶-1。

+0

关闭 - TEXT的限制以_bytes_为单位; 'VARCHAR'在_characters_中。 –

0

VARCHARTEXT之间的差异很小。大多数并不重要。

摘要

*TEXTCHAR,并VARCHAR

  • 切勿使用TINYTEXT
  • 几乎从不使用CHAR - 它是固定长度;每个字符的最大长度为CHARACTER SET(例如,utf8mb4为4个字节/字符)。除非另有所知,否则使用CHARACTER SET ascii
  • VARCHAR(n)将截断在n 个字符; TEXT将在一些字节截断。 (但是,你想截断吗?)
  • *TEXT可能由于如何处理临时表,减慢复杂SELECTs
0

VARCHAR列可以以任何大小给出,但受限于单行数据(包括所有列)的最大大小,即64KB(2¹⁶-1).TEXT列不会添加到最大行大小,因为实际文本不与行的其余部分一起存储。