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

Mysql auto_increment reset без восстановления индекса?

Просто ДОЛЖЕН быть способ сбросить значение auto_increment в таблице без перестройки всего индекса. У меня есть таблица с более чем 2 миллиардами строк, в которую случайно был вставлен идентификатор около 4,2 миллиарда. Из прошлого опыта я знаю, что попытка вернуть значение auto_increment к тому, каким оно должно быть, заставит mysql перестроить весь индекс, что, вероятно, займет 24 часа для таблицы такого размера. Честно говоря, я не могу поверить, что по умолчанию это просто «так». Абсолютно нет необходимости перестраивать весь индекс таблицы только потому, что вы хотите изменить это значение.

Должен быть способ. Но нигде не могу найти. ИДЕИ ПОЖАЛУЙСТА!

(Восстановление индексов, я знаю, что myisamchk может сделать это в 100 раз быстрее, чем сам процесс mysql. Но я не могу сказать mysql использовать myisamchk вместо самого себя для перестроения индекса после изменения идентификатора автоматического увеличения. Должен быть способ !!!)

Основываясь на этом статья, похоже, вы можете сбросить случайный идентификатор до правильного значения или отбросить строку, а затем начать сначала сервер как значение автоинкремента для таблиц innodb хранится в памяти. Я не пробовал это раньше, но это может сработать.