Поля внешнего ключа ссылаются на содержимое полей в других таблицах.
Если мы создадим таблицу примерно так:
Table Patient
id
name
address
И стол Болезнь
Table Illness
id
patient_id foreign key to patient.id
description
MySQL проверяет, действительно ли внешняя ссылка на таблицу patient
совпадает с идентификатором в Illness
. Он также выполняет обратное действие, если patient
удален, он проверяет, не ссылается ли он на illness
.
Для того, чтобы сделать это эффективно, ему нужно проиндексировать эти поля, в противном случае ему придется потратить слишком много времени на полный поиск в таблице.
Кроме того, слово key
является синонимом index
, поэтому имеет смысл индексировать ключи: -).