Сброс AUTO_INCREMENT занимает много времени в MySQL

ALTER TABLE tablename AUTO_INCREMENT = 10000000

Этот запрос требует много времени для обновления. Зачем? Мне нужно оптимизировать этот запрос.

Ответы

Ответ 1

ALTER TABLE вызывает перекомпоновку всей таблицы - если ваша таблица содержит много строк, это может занять возраст.

Если вам просто нужно увеличить значение значения auto_increment, самым быстрым способом является вставка фиктивной строки (а затем, если потребуется, удалить ее). Это займет всего лишь часть секунды, тогда как ALTER TABLE может занять несколько дней для большой таблицы.

Например, предположим, что у меня есть таблица с столбцом идентификатора auto_increment и другими столбцами col1, col2...:

insert into autoinc_table set ID = 10000000;
delete from autoinc_table where ID = 10000000;

Ответ 2

данные пользователя и администратора должны отличаться не от id, а от другого поля. Если вы будете рассматривать идентификатор как абстрактный идентификатор без каких-либо других значений, это сэкономит вам много времени и ресурсов, поверьте мне.