MYSQL:varchar vs int用于存储变量

时间:2014-05-09 00:05:40

标签: mysql

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

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

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

1 个答案:

答案 0 :(得分:8)

有一个简单的经验法则:如果你需要算术或索引,使用数字类型,如果不使用字符类型。

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

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

虽然严格来说,一个只有11位数字的VARCHAR字段的索引比INT(11)略慢,我还没有看到真实的数据库,这在差。