Если вы отключите ключи (приостановив индексирование) в таблице mysql INNODB, как долго будет длиться этот параметр?
Для запроса типа:
ALTER TABLE users DISABLE KEYS;
Ключи снова включаются в конце скрипта? или они сохраняются до тех пор, пока вы не включите индексацию обратно?
mysql
database
database-administration
indexing
Дэниэл Бердсли
источник
источник
Ответы:
Fine Manual (который стоит прочитать) предполагает, что действие этого оператора продолжается до тех пор, пока
ALTER TABLE ... ENABLE KEYS
не выполнится соответствующий оператор.источник
В действительности, ALTER TABLE ... ОТКЛЮЧИТЬ КЛАВИШИ и ALTER TABLE ... ENABLE KEYS не работают !!!!
Я обратился к этому еще в 13 февраля 2011 года.
Я немного покопался и узнал от материнской компании InnoDB, InnoBase Oy (до того, как меня сделали 7 из 9 в Oracle Borg), что это действительно так.
Эта ссылка предлагает сделать DISABLE KEYS и отключить внешние ключи вместе. Хотя я думаю, что оба излишни, это, видимо, сработало для кого-то
ОБНОВЛЕНИЕ 2011-07-18 12:35 ПО ВОСТОЧНОМУ ВРЕМЕНИ
Это очень хороший вопрос, потому что он раскрывает зло, оставшееся в MySQL. Программа mysqldump вслепую отбрасывает DISABLE KEYS и ENABLE KEYS вокруг создания и загружает каждую таблицу независимо от механизма хранения. Поскольку DISABLE KEYS и ENABLE KEYS не работают (в лучшем случае не оказывает влияния) на таблицы InnoDB, так как он работает правильно для MyISAM, этот неизвестный факт должен быть лучше задокументирован сообществом MySQL. О да, MySQL находится в центре Галактической Империи, известной как Oracle. Я не буду затаить дыхание на предстоящие изменения документации.
источник