インデックス作成に関する「ベストプラクティス」の質問があります。mysqlのインデックス作成の質問
私は通常、整数のためにcolumn
をフォーマットしている電話番号をインデックスに登録する必要があります。番号を複数の列に分けることができます:areacode、suffix、prefix、country code。しかし、私は国際的な数字を考慮する必要があり、数字はある国ではちょっと面白くなるので、私は1つの列を保つことを好みます。
私の質問は、列データを整数、文字、またはvarcharsに保存しておきたいのですか? 私はint以外のものを取り除くので、おそらくvarcharは必要ありません。
私はクライアントの検索能力を提供しなければならないので、番号をインデックスする必要があります。 電話番号がすべて米国からのものだった場合、私は列を分けていましたが、私は国際的にもケータリングしています。
私は索引付けの部分、およびこの分野の他の人々の実践については興味があります。整数で索引付けするのが最善でしょうか?
補足として、電話番号はすべて同じ長さになるわけではありません。だから私はcharまたはvarcharの列構造体のフォーマットについて尋ねる。
ありがとうございました!
私はそれが最小限のスペース要件を維持するので、それをvarcharとして保つのがより理にかなっていると思います。その後、完全な列を索引付けするか、最初の数文字だけを索引付けすることができます。しかし、私はすべての(またはほとんどすべての)エントリーに一意の電話番号が付いているので、電話番号のインデックス作成は助けにならないと思います。 – Abhay
WHERE句(または結合)で電話番号を使用する場合は、特に電話番号が各行に固有の場合は、索引付けする必要があります。 – Rafe