どれが一番いいのか知りたいです。col1(外部キーfk1)、col2(外部キーfk2でもある)を持つAというテーブルがあります。PK を (col1,col2) または新しく生成された PK として使用できますか? クエリには、条件に fk1 があり、結合に fk2 があります。ベストな1台を教えてください。
PS私はmysqlを使用しています
どれが一番いいのか知りたいです。col1(外部キーfk1)、col2(外部キーfk2でもある)を持つAというテーブルがあります。PK を (col1,col2) または新しく生成された PK として使用できますか? クエリには、条件に fk1 があり、結合に fk2 があります。ベストな1台を教えてください。
PS私はmysqlを使用しています
これが多対多のリンク テーブルの場合(col1, col2)
は、PK
.
外部キーは、インデックス構成されていることをMySQL
意味InnoDB
します。これは、テーブル自体が になり、そのPRIMARY KEY
レコードが順序付けられることを意味します。
も検索して結合でcol2
使用するcol1
場合は、 に追加のセカンダリ インデックスを作成する必要があります(col2)
。PRIMARY KEY
このインデックスは、値をレコード ポインタとして暗黙的に含むため、実際には と のインデックスになります(col2, col1, col2)
。
他の人が言ったように、これがリンクテーブルの場合は、col1、col2 を PK として使用します。一方、このテーブルを TO にリンクすることもできる場合は、独自の新しいキーを作成します。col1、col2 のペアに一意の制約を設定することもできます。