Fix*_*int 54 sql database varchar
为什么我们总是需要指定VARCHAR(length)而不仅仅是VARCHAR?无论如何它是动态的.
UPD:我特别困惑的是它是强制性的(例如在MySQL中).
Rob*_*Day 34
VARCHAR的"长度"不是内容的长度,而是内容的最大长度.
VARCHAR的最大长度不是动态的,它是固定的,因此必须指定.
如果您不想为其定义最大大小,请使用VARCHAR(MAX).
Ode*_*ded 13
首先,它不需要在所有数据库中.查看SQL Server,它是可选的.
无论如何,它定义了字段内容的最大大小.这本身并不是坏事,它传达了意义(例如 - 电话号码,你不希望在这个领域有国际号码).
有可能的性能impact:在MySQL,temporary tables和MEMORY tables存储VARCHAR列一个固定长度列,填补了它的最大长度。
如果您设计的VARCHAR列比您需要的最大尺寸大得多,您将消耗更多的内存。这会影响cache efficiency, sorting speed等。
所以你给你的字符串下的最大长度来。就像你最大长度的字符 10 所以不要给他的长度 100 或更多。