我有一个关于索引的“最佳实践”问题。mysql索引问题
我必须索引电话号码,我通常将column
设置为整数。我可以把这个号码分成多列:区号,后缀,前缀,国家代码。但由于我必须考虑国际数据,而且某些国家/地区的数字有点滑稽,我宁愿保留一列。
所以我的问题是,我应该保留列数据保存为整数,字符或varchars? 我会去掉任何非int相关的东西,所以varchar可能不需要。
我必须为我的客户提供搜索功能,因此我需要索引号码。 如果所有的电话号码都来自美国,那么我会分开列,但我也迎合国际。
所以我很好奇索引部分和其他人在这个舞台上的做法。用整数(对于这样的事情)索引是最好的,还是它很重要。
作为一个侧面说明,电话号码将不会是所有长度相同。这就是为什么我会询问如何格式化char或varchar中的列结构。
谢谢你们!
我认为保持它作为varchar更有意义,因为它将空间要求保持在最低限度。然后,您可以在完整列上索引,也可以只索引几个初始字符。但我认为电话号码索引无论如何都无济于事,因为所有(或几乎所有)条目都有唯一的电话号码。 – Abhay
如果您要在WHERE子句中(或在联接中)使用电话号码,则需要为其编制索引,尤其是在电话号码对每行都是唯一的情况下。 – Rafe