为什么mysql有很多不同的字段类型?

时间:2011-05-18 05:53:01

标签: mysql field

由于数据被分类为int,decimal,text(string),date,enum,为什么mysql仍然需要将它们分类为更多的组,就像文本一样分为char,varchar,text,tinytext等等?我知道这会让它更快,但是分成更多组并使其更快的关系是什么?是什么原因?

抱歉我的英语很差。

2 个答案:

答案 0 :(得分:1)

背后的主要原因是记忆。查看地址是文本信息,名称是文本信息,如果要存储任何值,如yesno也是文本值,如果您想从任何评论或发布一个它也是text值。所有这些价值需要不同的记忆。当你谈到大型系统时,内存是一个重要因素。例如,如果为所有文本信息设置text类型,则这是一种不好的做法。所以mysql已经分为不同的东西。如果您想存储名称,可以使用varchar(50),如果您想存储地址,甚至可以使用varchar(255)。如果您想存储帖子或评论和说明或任何可以使用text的内容。如果您想使用yesno类信息,可以使用char。我希望你理解。

答案 1 :(得分:1)

字符串类型的变化数量是进度的标志。在理想的世界中,旧的类型将被删除,新的和改进的类型将取代它们。但是,在现实世界中,遗留兼容性要求字段类型,例如,对于期望它的应用程序,行为类似于1960年代的COBOL字符串处理。所以带有尾随空格的char(20)类型填充就像IBM密钥卡一样。

将各种子类型想象成一组螺丝刀,有些小,有些大。每种都有适当的使用范围。如果您正在使用怀表,则不需要大螺丝刀。但如果应用程序是桥梁构建,那么微型精密螺丝刀仍未使用,而大型螺丝刀则被使用。数据库非常类似。