Как сконвертировать MyISAM в InnoDB
Проблемы могут возникнуть, если вы используете InnoDB в повседневных процессах, в то время как более старая таблица использует MyISAM. Вот почему так важно знать, как конвертировать таблицы.
Если вы намереваетесь сделать несколько временных копий ваших данных в таблицах InnoDB во время процесса преобразования, рекомендуется создать таблицы в табличных пространствах file-per-table, чтобы вы могли освободить дисковое пространство при удалении таблиц. Когда опция конфигурации innodb_file_per_table включена (по умолчанию), вновь созданные таблицы InnoDB неявно создаются в табличных пространствах file-per-table.
Независимо от того, преобразуете ли вы таблицу MyISAM напрямую или создаете клонированную таблицу InnoDB, убедитесь, что у вас достаточно места на диске для хранения как старых, так и новых таблиц во время процесса. Таблицы InnoDB требуют больше дискового пространства, чем таблицы MyISAM. Если операция ALTER TABLE заканчивается, она запускает откат, и это может занять несколько часов, если она привязана к диску. Для вставок InnoDB использует буфер вставки для объединения вторичных индексных записей с индексами в пакетах. Это экономит много дискового ввода-вывода. Для отката такой механизм не используется, и откат может занять в 30 раз больше времени, чем вставка.
В случае безудержного отката, если у вас нет ценных данных в базе данных, может быть целесообразно убить процесс базы данных, а не ждать завершения миллионов операций дискового ввода-вывода.
Чтобы преобразовать InnoDB в MyISAM, выполните:
2. Выберите таблицу, для которой вы хотите изменить механизм хранения, и выберите раскрывающееся меню «Еще».
3. Нажмите кнопку Операции, чтобы открыть меню.
4. Найдите параметр Тип таблиц в группе Параметры таблицы и щелкните его, чтобы загрузить раскрывающееся меню, содержащее различные механизмы хранения. Выберите InnoDB из списка и нажмите кнопку Вперед, чтобы сохранить изменения.
2. Выполните команду ALTER TABLE в оболочке MySQL, чтобы преобразовать механизм хранения.
Чтобы перейти в MyISAM, выполните команду:
Вы успешно преобразовали механизм хранения.
Если вы намереваетесь сделать несколько временных копий ваших данных в таблицах InnoDB во время процесса преобразования, рекомендуется создать таблицы в табличных пространствах file-per-table, чтобы вы могли освободить дисковое пространство при удалении таблиц. Когда опция конфигурации innodb_file_per_table включена (по умолчанию), вновь созданные таблицы InnoDB неявно создаются в табличных пространствах file-per-table.
Независимо от того, преобразуете ли вы таблицу MyISAM напрямую или создаете клонированную таблицу InnoDB, убедитесь, что у вас достаточно места на диске для хранения как старых, так и новых таблиц во время процесса. Таблицы InnoDB требуют больше дискового пространства, чем таблицы MyISAM. Если операция ALTER TABLE заканчивается, она запускает откат, и это может занять несколько часов, если она привязана к диску. Для вставок InnoDB использует буфер вставки для объединения вторичных индексных записей с индексами в пакетах. Это экономит много дискового ввода-вывода. Для отката такой механизм не используется, и откат может занять в 30 раз больше времени, чем вставка.
В случае безудержного отката, если у вас нет ценных данных в базе данных, может быть целесообразно убить процесс базы данных, а не ждать завершения миллионов операций дискового ввода-вывода.
Преобразование механизма хранения данных через терминал
Выполните команду ALTER TABLE в оболочке MySQL, чтобы преобразовать механизм хранения данных из MyISAM в InnoDB и наоборот.Чтобы преобразовать InnoDB в MyISAM, выполните:
ALTER TABLE database_name.table_name ENGINE=MyISAM;
Чтобы преобразовать MyISAM в InnoDB, выполните:ALTER TABLE database_name.table_name ENGINE=InnoDB;
Терминал выведет подтверждающее сообщение.Преобразование механизма хранения данных с помощью phpMyAdmin
Существует два способа преобразования механизма хранения данных в phpMyAdmin:- Использование меню Операций с таблицами.
- Запуск запроса.
Использование меню Операций
1. Выберите предпочтительную базу данных в меню базы данных.2. Выберите таблицу, для которой вы хотите изменить механизм хранения, и выберите раскрывающееся меню «Еще».
3. Нажмите кнопку Операции, чтобы открыть меню.
4. Найдите параметр Тип таблиц в группе Параметры таблицы и щелкните его, чтобы загрузить раскрывающееся меню, содержащее различные механизмы хранения. Выберите InnoDB из списка и нажмите кнопку Вперед, чтобы сохранить изменения.
Выполнение запроса
1. Откройте командный центр SQL для предпочтительной базы данных.2. Выполните команду ALTER TABLE в оболочке MySQL, чтобы преобразовать механизм хранения.
Чтобы перейти в MyISAM, выполните команду:
ALTER TABLE table_name ENGINE=MyISAM;
Чтобы перейти в InnoDB, выполните команду:ALTER TABLE.table_name ENGINE=InnoDB;
3. Нажмите кнопку Вперед, чтобы запустить запрос.Вы успешно преобразовали механизм хранения.
Похожие публикации
Основные отличия InnoDB и MyISAM
Нет комментариев