Я работаю с довольно старым веб-приложением, которое использует MySQL в качестве базы данных. 90% таблиц - MyISAM, у них нет индексов по внешним ключам.Добавление индекса без повышения производительности ограничения внешнего ключа
Я рассматривал перенос всего этого на InnoDB, чтобы я мог применять ограничения внешнего ключа и тому подобное. Однако, поскольку приложение устарело и немного странно, он полагался на код для обеспечения ссылочной целостности, и я боюсь, что внесение такого изменения в базу данных может привести к нескольким сбоям кода. У меня нет времени, чтобы пройти всю кодовую базу и убедиться, что все делает то, что она должна, у меня нет причин подозревать, что это не я просто знаю о возможности добавления ограничений внешнего ключа, вызывающих непредвиденные вопросы.
Я думал, что другой подход может заключаться в том, чтобы просто добавлять индексы в поля внешнего ключа, не создавая ограничений. Я думаю, что это улучшит производительность, не рискуя повредить существующую функциональность. Может ли кто-нибудь сказать мне, есть ли причина не делать этого? Получаю ли я такое же повышение производительности, как и добавление индексов и ограничений внешнего ключа?
mysql уже автоматически создает индексы в полях с иностранными ключами. вы просто будете дважды индексироваться. –