v_decadence
@v_decadence

Чем определяется, удалит ли MySQL индекс внешнего ключа?

В документации MySQL написано, что он автоматически создаёт индекс для внешнего ключа и может его удалить, если потом будет создан другой подходящий индекс.

MySQL requires indexes on foreign keys and referenced keys so that foreign key checks can be fast and not require a table scan. In the referencing table, there must be an index where the foreign key columns are listed as the first columns in the same order. Such an index is created on the referencing table automatically if it does not exist. This index might be silently dropped later, if you create another index that can be used to enforce the foreign key constraint. index_name, if given, is used as described previously.

На одном сервере исходный индекс удаляется, на другом остаётся. Хотя версия MySQL в обоих случаях 5.7, но на одном из них Percona-версия: на нём индекс удаляется, на чистом MySQL индекс остаётся.

Не могу понять, от чего зависит, будет ли удаляться исходный индекс. Может какая-то настройка есть или это всегда остается на усмотрение MySQL? Но тогда получается, что на разных серверах может быть разный состав индексов.
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
Vapaamies
@Vapaamies
Разработчик будущей ОС для ПК размером 250 МБ
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы