MYSQL:varchar vs int用于存储变量

jos*_*unt 4 mysql

出于可读性的原因,我想将变量存储为varchar,例如"in","out","auto"而不是int,例如"0","1","2".我有什么理由不把它作为varchar存储吗?

我问的原因是我听说int更快但是在这种情况下是否适用或速度差是否小到可以忽略不计?

我是MYSQL的新手,所以如果您需要更多信息,请告诉我,我已经搜索了类似的问题/答案,但没有找到任何答案我的问题.

Eug*_*eck 8

有一个简单的经验法则:如果您需要进行算术运算或索引,请使用数字类型,如果不使用字符类型.

根据经验,经验取决于拇指的大小和角度,这就是我的意思:

  • (经典示例#1)电话号码:没有算术是有意义的,使用VARCHAR并获得免费的收集+()额外内容
  • (经典例子#2)邮政编码:再次没有算术,我们的英国朋友生活在类似的东西中LO7SWF,如果你使用VARCHAR将会感激不尽
  • 一个集合中的一个,例如0-9:如果这些是查找表的PK(因为它们应该是),请使用int.如果他们的意思在数据库之外,请考虑使用VARCHAR(如果硬件供应商从严格数字键盘升级到也使用#和,则微笑*)

虽然严格来说,对于仅具有11位数字的数字内容的VARCHAR字段的索引比INT(11)略慢,但我还没有看到真实数据库,这会产生明显的差异.