MySQL
Konwersja MyISAM do InnoDB
Szukaj…
Podstawowa konwersja
ALTER TABLE foo ENGINE=InnoDB;
To przekształca tabelę, ale nie eliminuje różnic między silnikami. Większość różnic nie będzie miała znaczenia, szczególnie w przypadku małych stolików. Ale w przypadku bardziej obciążonych tabel należy rozważyć inne kwestie. Uwagi dotyczące konwersji
Konwertowanie wszystkich tabel w jednej bazie danych
Aby łatwo przekonwertować wszystkie tabele w jednej bazie danych, użyj następujących poleceń:
SET @DB_NAME = DATABASE();
SELECT CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
FROM information_schema.tables
WHERE table_schema = @DB_NAME
AND `ENGINE` = 'MyISAM'
AND `TABLE_TYPE` = 'BASE TABLE';
UWAGA: Powinieneś być podłączony do bazy danych, aby funkcja
DATABASE()
działała, w przeciwnym razie zwróciNULL
. Dotyczy to głównie standardowego klienta mysql dostarczanego z serwerem, ponieważ umożliwia połączenie bez określania bazy danych.
Uruchom tę instrukcję SQL, aby pobrać wszystkie tabele MyISAM
w bazie danych.
Na koniec skopiuj dane wyjściowe i wykonaj z nich zapytania SQL.
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow