Подтвердить что ты не робот

Зачем использовать ограничения внешнего ключа в MySQL?

Мне было интересно,

Какова будет моя мотивация использовать ограничение как внешний ключ в MySQL, так как я уверен, что могу управлять добавляемыми типами?

Повышает ли производительность?

4b9b3361

Ответ 1

Внешние ключи обеспечивают ссылочную целостность. Эти ограничения гарантируют, что строка в таблице order_details с полем order_id, ссылающаяся на таблицу orders, никогда не будет иметь значение order_id, которое не существует в таблице orders.

Для внешних ключей не требуется работающая реляционная база данных (фактически MySQL по умолчанию хранилище движок не поддерживает FK), но они безусловно, необходимы, чтобы избежать нарушенных отношений и сиротских строк (то есть ссылочной целостности). Для обеспечения доступности ссылочной целостности на уровне базы данных требуется C в ACID.

Что касается ваших проблем, связанных с производительностью, то, как правило, существует стоимость исполнения, но, вероятно, будет незначительной. Я предлагаю использовать все ограничения внешнего ключа и экспериментировать без них, если у вас есть реальные проблемы с производительностью, которые вы не можете решить иначе.