2011-07-28 10 views
1

テーブルの1つのフィールドに外部キーを作成すると、そのフィールドにインデックスが自動的に作成されます。インデックスが外部キーフィールドに自動的に作成された理由インデックスが外部キーフィールドに自動的に作成されたのはなぜですか?

+0

related外部キーとして機能する列に対してインデックスが自動的に作成されるため、関連するhttp://stackoverflow.com/questions/304317/does-mysql-index-foreign-key-column-automatically –

+0

MySQLマニュアルを確認してください。 –

+0

詐欺ではない、リンクされた質問は次のように尋ねます:MySQLは外部キーにインデックスを付けるのですか? – Johan

答えて

0

外部キーフィールドは、他のテーブルのフィールドの内容にリンクします。

我々はそうのような表を作成する場合:

Table Patient 
    id 
    name 
    address 

とテーブル病気

Table Illness 
    id 
    patient_id foreign key to patient.id 
    description 

MySQLはテーブルpatientへの外部リンクは、実際にIllnessのidをアップ一致するかどうかを確認します。また、復唱も行います。patientが削除された場合は、illnessで参照されていないことを確認します。 これを効率的に行うためには、これらのフィールドのインデックスを作成する必要があります。そうしないと、完全なテーブル参照を行うのに時間がかかりすぎる必要があります。

さらに、単語keyindexの同義語ですので、インデックスキーには意味があります:-)。

+0

k ..その後、私はインデックスを作成せずに外部キーを作成できますか? –

+0

@Sunitha、それは不可能なのですが、どうしてそんなことをしたいのですか? – Johan

+0

私はそのforiegnキーフィールドへのインデックスを作成しないので、それは尋ねています... –

1

インデックスは、パフォーマンスを向上させるために外部キーに作成されます。関連する項目を取得するのが一般的な外部キーがある場合、インデックスを使用すると、これらの項目をすばやく取得できます。また、外部キーに課せられた条件(削除、更新)は、インデックスを利用して高速に動作します。最後に、外部キーを作成するときに整合性チェックを実行する必要があります。これには検索を実行する必要があります。これらの検索はインデックスを利用します。

関連する問題