Como otimizar a ingestão de grandes quantidades de dados no banco de dados MySQL?

2

Eu tenho um banco de dados com cerca de 100 GB de tamanho. Todos os dias o banco de dados deve ser atualizado com cerca de 8 GB de dados. Os dados são ingeridos no banco de dados usando um script (python) escrito por terceiros (Apple). Os dados são uma coleção de arquivos pertencentes a diferentes tabelas no banco de dados.

Atualmente, são necessárias aproximadamente 15 horas para atualizar o banco de dados todos os dias. Estou executando a atualização na minha máquina local (Quad Core 2.6GHz, 6GB Ram, 32 bits Ubuntu 11 e MySQL 5.1).

Eventualmente, esse processo será transferido para o serviço Amazon EC2. Qual é a melhor maneira de otimizar este processo para reduzir significativamente o tempo necessário para ingerir todos os dados diariamente?

Suas sugestões seriam muito apreciadas. Obrigado.

    
por David 12.05.2011 / 06:12

1 resposta

5

Use um arquivo CSV e LOAD DATA INFILE , é muito mais rápido do que executar o SQL.

Outra opção é importar os arquivos SQL em paralelo, iniciando vários clientes ou usando o mk-paralelo- do Maatkit. restaurar

    
por 12.05.2011 / 06:22