Comando MySQL consultando todos os bancos de dados MyISAM


13

Eu apreciaria se alguém pudesse me ajudar sobre qual é o comando apropriado no MySQL para consultar todos os bancos de dados por terem o mecanismo "MyISAM". Preciso converter todos os bancos de dados e tabelas do MyISAM para o InnoDB.

Respostas:


25

Abaixo está a consulta para encontrar todas as tabelas que possuem MyISAMmecanismo

SELECT TABLE_SCHEMA as DbName ,TABLE_NAME as TableName ,ENGINE as Engine FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');

A Consulta acima listará todas as tabelas com o MyISAMMecanismo.

Para saber como converter suas tabelas MyISAM existentes para o InnoDB Abaixo está a consulta que retornará as instruções ALTER para as quais as MyISAMtabelas existentes serão convertidas InnoDB.

SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA,'`.`',TABLE_NAME, '` ENGINE = InnoDB;') FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');

Você pode executar essas instruções para converter mecanismos.


Obrigado @AbdulManaf. Não esperava que o primeiro comando levasse tempo no servidor.
James Sábio

Sim, não deve levar tempo.
Abdul Manaf

Como consultar para encontrar todas as tabelas em bancos de dados que não são o InnoDB?
James Wise
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.