Назад | Перейти на главную страницу

В MySQL, как долго длится «ALTER TABLE… DISABLE KEYS;» заявление последнее?

Если вы отключите ключи (приостановка индексации) в таблице mysql INNODB, как долго этот параметр будет длиться?

Для запроса вроде:

ALTER TABLE users DISABLE KEYS;

Активируются ли ключи в конце сценария? или они продолжаются до тех пор, пока вы явно не включите индексирование?

Прекрасное руководство (что стоит прочитать) предполагает, что действие этого утверждения длится до соответствующего ALTER TABLE ... ENABLE KEYS заявление выполнено.

В действительности, ALTER TABLE ... DISABLE KEYS и ALTER TABLE ... ENABLE KEYS не работают !!!!

Я обращался к этому еще 13 февраля 2011 года.

Я немного покопался и узнал от материнской компании InnoDB, InnoBase Oy (до того, как был сделан 7 из 9 в Oracle Borg), что это действительно так.

Эта ссылка предлагает вместе выполнить ОТКЛЮЧЕНИЕ КЛЮЧЕЙ и отключение внешних ключей. Хотя я думаю, что оба варианта не нужны, это, видимо, сработало для кого-то.

ОБНОВЛЕНИЕ 2011-07-18 12:35 EDT

Это очень хороший вопрос, потому что он раскрывает зло, которое осталось в MySQL. Программа mysqldump слепо отбрасывает DISABLE KEYS и ENABLE KEYS при создании и загрузке каждой таблицы, независимо от механизма хранения. Поскольку DISABLE KEYS и ENABLE KEYS не работают (в лучшем случае не влияют) на таблицы InnoDB, поскольку он работает правильно для MyISAM, этот неизвестный факт должен быть лучше задокументирован сообществом MySQL. О да, MySQL находится в центре Галактической Империи, известной как Oracle. Я не буду затаить дыхание в связи с предстоящими изменениями документации.