私は、データベースとしてMySQLを使用するかなり古いWebアプリを使用しています。テーブルの90%はMyISAMであり、ほとんどの場合、外部キーにインデックスがありません。
外部キー制約などを適用できるように、すべてをInnoDBに移植することを検討していました。ただし、アプリケーションは古く、少し乱雑であるため、参照整合性を適用するためにコードに依存しており、データベースでこの変更を行うと、複数のコードエラーが発生する可能性があります。コードベース全体を調べて、すべてが想定どおりに機能することを確認する時間がありません。予期しない原因となる外部キー制約を追加する可能性を認識しているだけではないことを疑う理由はありません。問題。
別のアプローチは、制約を作成せずに外部キーフィールドにインデックスを追加することであると考えていました。これにより、既存の機能を損なうことなくパフォーマンスが向上すると思います。これをしない理由があるかどうか誰かに教えてもらえますか?これを行うと、インデックスと外部キー制約を追加するのと同じパフォーマンスの向上が得られますか?