指定数据类型的长度

时间:2011-10-28 21:26:04

标签: mysql sql database database-design

在创建数据库表列时,这会让我感到困扰。对于这些中的每一个,都有一个具有长度的数据类型。例如,其中一个表是文件路径,我假设此文件路径的最大长度不超过100,显然我将其指定为

filepath Varchar(100) 

但是,这仍然占用与varchar(255)1字节相同的内存空间。鉴于此,我将长度指定为100的好处是什么。以异常值为例,如果我的文件路径超过varchar(100),数据库是否拒绝/减少文件路径值以使其适合100?或者它是否允许它超过100,因为分配的内存空间仍然是1个字节左右?

基本上上面的解释构成了我的问题,我们应该尝试并非常具体地说明表格列的预期最大长度?或者只是安全地播放并根据内存要求指定表格列的预期长度的上限?

非常感谢!

帕里贾特

2 个答案:

答案 0 :(得分:1)

MySQL会自动将值截断为100个字符。 text / char字段括号中的数字是MAXIMUM长度。请注意,这是CHARACTER限制。如果您在该字段上有多字节排序规则,则可以在字段中存储超过100个字节,但只能存储100个字符的文本。

这与int(10)不同,其中括号内的数字仅用于显示目的。 int是一个int内部并占用16位,无论你允许多少位数(#),但你永远不会 SEE 多于那些#位数。

答案 1 :(得分:1)

  

非常具体关于表列的预期最大长度?或者只是玩得安全

如果要创建一个包含地址的表,您无疑会知道地址长度会受到某种限制。在数据库中允许更长的字段是没用的。

你应该安全地玩,并且要非常小心。