「メールアドレス」や「userName」unique
フィールドを含む「users」テーブルを作成したいのですが、「id」int usigned auto_increment
を追加する必要がprimary key
ありますか?
そのようなテーブルの「id」フィールドを別のフィールドで使用している教科書の例をいくつか見たので、私は尋ねていunique
ます。
「メールアドレス」や「userName」unique
フィールドを含む「users」テーブルを作成したいのですが、「id」int usigned auto_increment
を追加する必要がprimary key
ありますか?
そのようなテーブルの「id」フィールドを別のフィールドで使用している教科書の例をいくつか見たので、私は尋ねていunique
ます。
はい、それがベストプラクティスです。
列のデータ型userId
を使用してテーブルにインデックスを付けるとパフォーマンスが低下するため、列を使用する必要があります。VARCHAR
パフォーマンスには使用するINT
方が優れています。それらはより少ないスペースを占有し、さらに重要なことに、それらは比較するのがはるかに高速です。
1つのINT
CPU命令で比較を実行できます。VARCHAR
sまたはsの場合CHAR
、各文字を順番に比較する必要があります。これにより、すべてのPKルックアップが高速になります。結合テーブルがある場合、すべての結合選択はPKを検索します。