我有一個關於索引的「最佳實踐」問題。mysql索引問題
我必須索引電話號碼,我通常將column
設置爲整數。我可以把這個號碼分成多列:區號,後綴,前綴,國家代碼。但由於我必須考慮國際數據,而且某些國家/地區的數字有點滑稽,我寧願保留一列。
所以我的問題是,我應該保留列數據保存爲整數,字符或varchars? 我會去掉任何非int相關的東西,所以varchar可能不需要。
我必須爲我的客戶提供搜索功能,因此我需要索引號碼。 如果所有的電話號碼都來自美國,那麼我會分開列,但我也迎合國際。
所以我很好奇索引部分和其他人在這個舞臺上的做法。用整數(對於這樣的事情)索引是最好的,還是它很重要。
作爲一個側面說明,電話號碼將不會是所有長度相同。這就是爲什麼我會詢問如何格式化char或varchar中的列結構。
謝謝你們!
我認爲保持它作爲varchar更有意義,因爲它將空間要求保持在最低限度。然後,您可以在完整列上索引,也可以只索引幾個初始字符。但我認爲電話號碼索引無論如何都無濟於事,因爲所有(或幾乎所有)條目都有唯一的電話號碼。 – Abhay
如果您要在WHERE子句中(或在聯接中)使用電話號碼,則需要爲其編制索引,尤其是在電話號碼對每行都是唯一的情況下。 – Rafe