Pergunta

Oi Estou usando o MySQL 5.0.x

Eu tenho apenas mudou um monte das tabelas de MyISAM para InnoDB

Com as tabelas MyISAM que demorou cerca de 1 minuto para instalar nosso banco de dados Com o InnoDB leva cerca de 15 minutos para instalar o mesmo banco de dados

Por que o InnoDB levar tanto tempo?

O que posso fazer para acelerar as coisas?

O banco de dados instalar faz as seguintes etapas

1) Gotas o esquema

2) Criar o esquema

3) Criar tabelas

4) Criar procedimentos armazenados

5) de dados padrão Inserir

6) Inserir dados via procedimento armazenado

EDIT:

A inserção de dados padrão leva a maior parte do tempo

Foi útil?

Solução

Modificar a etapa Inserir dados para iniciar uma transação no início e cometê-lo no final. Você vai ter uma melhora, eu garanto. (Se você tem um monte de dados, você pode querer quebrar a transação até por tabela.)

Se você aplicativo não usar transações em tudo, então você deve definir o innodb_flush_log_at_trx_commit paramater a 2. Isto lhe dará um monte de volta desempenho porque você quase certamente terá auto_commit habilitado e isso gera muito mais transações do que padrão do InnoDB parâmetros são configurados para. Esta configuração pára-lo desnecessariamente liberar os buffers de disco em cada submissão.

Outras dicas

15 minutos não parece excessiva para mim. Afinal de contas, é um custo único.

Eu não estou certo, mas eu poderia imaginar que parte da explicação é a integridade referencial não é livre. InnoDB tem que fazer mais trabalho para garantir isso, então é claro que seria necessário mais tempo.

Talvez suas necessidades de script para ser alterado para adicionar restrições após as tabelas são criadas.

Como duffymo disse, desativar suas limitações (índices e Estrangeira / chaves primárias) antes de inserir os dados.

Talvez você deve restaurar alguns índices antes dos dados inseridos através de procedimento armazenado, se o seu uso um monte de selecione declarações

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top