1

使用 MySQL 时,是否有时使用文本字段(varchar、text 等)而不是数字字段(int、float 等)是有意义的,即使要存储的所有数据都是数字的?

例如,将“5 位邮政编码”数据存储在 5 字符“varchar”字段而不是显式数字字段中会更好、更快或更有效吗?

如果是,我如何确定何时最好将文本字段用于数值数据?

如果相关,我正在使用 InnoDB。

编辑:我使用邮政编码作为上面的示例,但是当所有要存储的数据都是数字数据时,“通常”何时应该选择文本数据类型而不是数字数据类型。

4

2 回答 2

4

取决于您如何使用数据。对于邮政编码,我会使用VARCHAR- 只是因为它是地址的一部分,不会用于计算。此外,您可能希望将来包括其他国家/地区(在英国,我们有字母数字的邮政编码)。

于 2011-10-06T06:22:14.340 回答
1

作为一般规则,Ed 的回答几乎涵盖了所有内容:

  • 不要在列中存储数值varchar- 除非有可能必须存储其他字符(例如邮政编码和电话号码)

当您需要对存储值进行计算/比较时,请始终使用数字数据类型(在字符串比较中 2 大于 10)

于 2011-10-06T06:51:55.493 回答