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

Я задавался вопросом,

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

Это улучшает производительность?

42
задан Daniel Vassallo 8 August 2010 в 10:50
поделиться

1 ответ

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

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

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

65
ответ дан 26 November 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: