Как преобразовать таблицы MySQL из MyISAM в InnoDB

Так как InnoDB надежнее для хранения важных данных и производительнее при частых запросах на запись, то преобразую таблицы MyISAM в InnoDB, в старых базах данных, в одной из компаний.

Обязательно нужно сделать резервную копию базы данных так как могут потеряться данные и после преобразования нужно сверить все ли данные на месте.

Подключимся к MySQL серверу любым удобным клиентом, например в терминале Ubuntu это можно сделать так:

mysql -u root -p

Составим список sql запросов для преобразования таблиц MyISAM в InnoDB (где dbname — имя нужной базы данных):

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;') 
 FROM INFORMATION_SCHEMA.TABLES
 WHERE ENGINE='MyISAM'
 AND table_schema = 'dbname';

Должны отобразится подобные sql запросы:

ALTER TABLE table1 ENGINE=InnoDB;
ALTER TABLE table2 ENGINE=InnoDB;

Теперь осталось выбрать базу данных и выполнить полученные ранее sql запросы:

use dbname;

Смотрите также другие мои статьи на тему MySQL

Оставьте комментарий

Добавить комментарий