存储国家代码+电话的最佳索引选择



我有3个选项来存储2个字段:国家代码+电话

a( 国家代码(可以是1、2或3个字符(

b( 电话(可以是8-12位数字(

这2个字段将用于创建2字段索引:

  1. varchar(3(和varchar(12(
  2. char(3(和char(12(——但是char(12的空间浪费
  3. smallint和varchar(12(
  4. smallint和char(12(——但是char(12的空间浪费

对于索引效率,我应该选择哪一个?SmallInt+varchar会减慢索引速度,还是字符串字段应该与字符串字段配对?

感谢任何人能提供的建议。

您已经描述了两个非数字字段,每个字段最多可以有3个和12个字符。第一个选择似乎是显而易见的选择。

我说这些是非数字字段,因为值的算术和(通常(比较逻辑不遵循数字规则。在任何一个值上加1都没有意义。

此外,前导零很可能很重要。

如果您使用的是ISO 3个字符的国家/地区代码,那么您知道这些值是3个字符,并且您可以使用CHAR(3)而不是VARCHAR(3)。当然,smallint也是合适的。

最新更新