为什么mysql有许多不同的字段类型?
既然数据被分类为int、decimal、text(string)、date、enum,为什么mysql仍然需要将它们分类为更多的组,就像文本被分为char、varchar、text、tinytext等一样?我知道这会使它更快,但是分类到更多的组和使它更快之间有什么关系呢?原因是什么为什么mysql有许多不同的字段类型?,mysql,field,Mysql,Field,既然数据被分类为int、decimal、text(string)、date、enum,为什么mysql仍然需要将它们分类为更多的组,就像文本被分为char、varchar、text、tinytext等一样?我知道这会使它更快,但是分类到更多的组和使它更快之间有什么关系呢?原因是什么 对不起,我的英语很差。嗯,主要原因是记忆力差。请参见地址是文本信息,名称是文本信息,如果要存储任何值,如yes,no也是文本值,如果要从任何一个位置获取评论或帖子,它也是text值。所有这些价值观都需要不同的记忆。当
对不起,我的英语很差。嗯,主要原因是记忆力差。请参见地址是文本信息,名称是文本信息,如果要存储任何值,如
yes
,no
也是文本值,如果要从任何一个位置获取评论或帖子,它也是text
值。所有这些价值观都需要不同的记忆。当你们谈论大系统时,内存是一个重要的因素。例如,如果为所有文本信息设置text
type,这是一种非常糟糕的做法。所以mysql被分为不同的类别。例如,如果要存储名称,可以使用varchar(50)
,如果要存储地址,甚至可以使用varchar(255)
。如果您想存储帖子、评论、描述或任何东西,您可以使用文本
。如果要使用yes
和no
类似的信息,可以使用char
。希望您能理解。字符串类型的变化数量是进步的标志。在理想的世界中,旧的类型将被删除,新的和改进的类型将取代它们。但是,在现实世界中,遗留兼容性要求字段类型的行为类似于20世纪60年代的COBOL字符串处理,适用于需要它的应用程序。因此,char(20)
键入带有尾随空格的pad,使其像IBM keypunch卡一样工作
把各种类型的螺丝刀看作一套螺丝刀,有些小,有些大。每一种都有一个合适的使用范围。如果你在做怀表,就不需要大螺丝刀了。但是,如果应用是桥梁建设,那么微型精密螺丝刀仍然不用,而大型螺丝刀会被使用。数据库很像这样。是的,我明白。我仍然想知道为什么mysql需要我们声明字段长度而不是计算长度本身?谢谢你的回答:)