Обязателен ли индекс для внешнего ключа InnoDB MySQL?
Обязателен ли индекс для внешнего ключа InnoDB MySQL?
Да обязателенТаблица нормально создается и без индекса. 
При создании таблицы индекс на внешние ключи добавляется автоматически. Некоторые не советуют создавать индексы при проектировании таблиц, только при накоплении нескольких тысяч записей в таблице для ускорения запросов
Тут нужно понимать в чем разница между индексом созданным Вами по любому из полей, и индексом по внешнему ключу. Не рекомендуется заранее создавать индексы, т.к. на этапе разработки просто не понятно какие индексы действительно будут использоваться,на практике, а без каких можно обойтись (тем самым сэкономив время записи данных).  С внешними ключами же история немного другая, они служат для проверки целостности данных, при вставке/редактировании (про всякие там джойны - вообще молчу). А значит каждый раз когда Вы добавляете запись, необходимо найти соответствующую запись по внешнему ключу. Поиск без индекса происходит очень медленно, поэтому его использование в этой ситуации по умолчанию вполне оправдано.Вопрос 1: зачем встроили создание индекса?
Это плата за независимость от СУБДВопрос 2: разве при удалении таблицы индекс и ключ не удаляются вместе с ней? Или в разных СУБД бывает по-разному?
Аналогично с предыдущим пунктом, это плата за независимость от СУБД
Вопрос 1: зачем встроили создание индекса?
Потому что индекс можно создавать и не по внешнему ключу.Вопрос 2: разве при удалении таблицы индекс и ключ не удаляются вместе с ней? Или в разных СУБД бывает по-разному?
Потому что индексы иногда необходимо удалять отдельно.