テーブル1には、id(autoincrement)、citynumber(unique)、description(varchar(1000))の3つの列があります。 カラムIDはクエリで使用されません。これはちょうど私の便宜のために使用されています(テーブルがどのように成長するかを見るために、idを参照するのはcitynumberよりも簡単ですが、idはSQLクエリを作成するときに使用されません)。MySQL:追加のid列とパフォーマンスの比較
パフォーマンスを向上させるには、id列を削除することを強くお勧めしますか?
'unique'制約とPKsの間にあなたのポイントを置くと、 'id'カラムを削除する理由はありません。サロゲートキーピアをナチュラルキーに代入すると便利です。 where句がcitynumberカラムにフィットする場合でも、代理のPKに対する継承は可能です。 – dlgrasse
なぜsurogate PKに対してジョインを使用しますか?私がこの投稿から理解するところでは、idとcitynumberのデータ型は同じである可能性があります。 – Oroboros102
である可能性があります。私は都市番号が自然なキーであるかどうか私の答えで尋ねてきましたが、応答はありませんでした。サロゲートに参加する理由については、私はそれが彼らのためにあると答えています。定義上、彼らはdb目的のためだけに存在し、外部の意味を持たなくてはなりません。 – dlgrasse