2016-08-20 56 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列不會添加到最大行大小,因爲實際文本不與行的其餘部分一起存儲。