Ответ 1
Самый простой способ -
ALTER TABLE table_name ENGINE = InnoDB;
Если вы используете движок InnoDB, вам не стоит беспокоиться о блокировке таблиц, потому что этот механизм блокирует данные по строкам.
На моем сайте у меня есть таблица посетителей с 10 миллионами строк.
Каждый запрос на сайт вставляет строку в таблицу, если таблица заблокирована (как правило, при оптимизации запроса) посетители не могут попасть на сайт
Движок таблицы - MyISAM, и я хочу изменить его на InnoDB
У меня мало вопросов:
Самый простой способ -
ALTER TABLE table_name ENGINE = InnoDB;
Если вы используете движок InnoDB, вам не стоит беспокоиться о блокировке таблиц, потому что этот механизм блокирует данные по строкам.
oleksii.svarychevskyi прав, InnoDB использует блокировки уровня строки, но если вы делаете
ALTER TABLE table_name ENGINE = InnoDB;для изменения table_name из MyIsam в InnoDB, будет блокировка метаданных (на уровне таблицы), потому что исходный движок таблицы был MyIsam.