MySQL хочет создать отдельный индекс для каждого из них. Таким образом, вы можете иметь три индекса:
(col1, col2)
(col1)
(col2)
Я говорю "может ", потому что MySQL также пытается оптимизировать автоматическое создание индекса. Итак, если первый индекс уже создан, то второй не нужен - они избыточны. Третий, однако, необходим.
Моя рекомендация? Автоматическое создание индекса поддерживает другие цели - применение уникального ограничения для первого индекса или ограничение внешнего ключа для второго и третьего. Вы хотите, чтобы база данных сделала все это. Сохраняйте объявления unique
и foreign key
!
Итак, единственное, что вы можете сделать, это убедиться, что уникальный индекс известен примерно за до объявления внешних ключей . Этого должно быть достаточно, чтобы объявить это в create table
- однако я бы поставил ограничение unique
перед ограничениями внешнего ключа, просто чтобы быть уверенным.