MySQLの外部キー制約とIndexについて
MySQLでは、外部キーを作成すると内部的にindexを作成する。
またMySQLは、外部キーのカラムはindexありきで動くようになっていそう
MySQL では、外部キーカラムにインデックスを付ける必要があります。外部キー制約はあるが所定のカラムのインデックスがないテーブルを作成する場合、インデックスが作成されます。
https://dev.mysql.com/doc/refman/8.0/ja/constraint-foreign-key.html
MySQL では、外部キーチェックを高速に実行でき、かつテーブルスキャンが必要なくなるように、外部キーおよび参照されるキーに関するインデックスが必要です。 参照しているテーブルには、外部キーカラムが同じ順序で最初のカラムとしてリストされているインデックスが存在する必要があります。 このようなインデックスが存在しない場合は、参照しているテーブル上に自動的に作成されます。 外部キー制約の施行に使用できる別のインデックスを作成した場合、このインデックスは後で暗黙的に削除される可能性があります。index_name が指定されている場合は、前述のように使用されます。
https://dev.mysql.com/doc/refman/8.0/ja/create-table-foreign-keys.html#foreign-key-restrictions