「メールアドレス」や「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つのINTCPU命令で比較を実行できます。VARCHARsまたはsの場合CHAR、各文字を順番に比較する必要があります。これにより、すべてのPKルックアップが高速になります。結合テーブルがある場合、すべての結合選択はPKを検索します。