alterando o banco de dados mySQL (5.6) do MyISAM para o InnoDB

2

Eu atualizei recentemente meu servidor CPanel do mySQL 5.5 para o mySQL 5.6, já que agora ele suporta pesquisas de texto completo para o InnoDB. Agora, eu não sou tão bom em meu MySQL, então eu queria saber se há algo especial que eu precise ter em mente além de executar

ALTER TABLE my_table ENGINE=InnoDB;

Várias das minhas tabelas têm índices de texto completo. Oque vai acontecer com eles? Os índices serão convertidos automaticamente? Ou eu tenho que reconstruí-los manualmente depois?

    
por user2643870 08.03.2014 / 00:10

1 resposta

1

Se você não alterar nenhum dos parâmetros de inicialização do FULLTEXT, sua conversão do MyISAM para o InnoDB cuidará da criação dos índices FULLTEXT para o InnoDB.

ETAPAS DE CONVERSÃO

Se você puder se conectar ao MySQL a partir de uma interface de linha de comando, execute esta consulta

SELECT DISTINCT table_schema,table_name
FROM information_schema.statistics WHERE index_type='FULLTEXT';

Isso lhe dará todas as tabelas com um índice FULLTEXT.

Usando essa consulta, execute esta consulta

SELECT CONCAT('ALTER TABLE ',B.table_schema,'.',B.table_name,' ENGINE=InnoDB') Cmd
FROM (SELECT DISTINCT table_schema,table_name
FROM information_schema.statistics WHERE index_type='FULLTEXT') A
INNER JOIN information_schema.tables B USING (table_schema,table_name)
WHERE B.engine='MyISAM';

Isso mostrará todos os comandos para converter tabelas MyISAM com índices FULLTEXT no InnoDB.

Você pode enviar os comandos para um arquivo de texto.

SQL="SELECT CONCAT('ALTER TABLE ',B.table_schema,'.',B.table_name,' ENGINE=InnoDB')"
SQL="${SQL} FROM (SELECT DISTINCT table_schema,table_name"
SQL="${SQL} FROM information_schema.statistics"
SQL="${SQL} WHERE index_type='FULLTEXT') A"
SQL="${SQL} INNER JOIN information_schema.tables B"
SQL="${SQL} USING (table_schema,table_name)"
SQL="${SQL} WHERE B.engine='MyISAM'"
mysql -uroot -p -ANe"${SQL}" > ConversionScript.sql
less ConversionScript.sql

Isso criará o script de conversão e permitirá visualizá-lo.

Se você estiver satisfeito com o conteúdo dos scripts, faça o login no mysql e execute:

mysql> source ConversionScript.sql

Experimente!

    
por 10.03.2014 / 18:37