Importação rápida em massa de um grande conjunto de dados para MySQL

Importação rápida em massa de um grande conjunto de dados para MySQL

Eu tenho um conjunto de dados bastante grande que preciso importar para o MySQL. Gostaria de fazer isso da maneira mais eficiente possível, pois precisarei fazer isso repetidamente. Existem truques para isso? Existe alguma maneira que seja mais eficiente que as instruções INSERT estendidas?

Para responder às dúvidas do comentário, o formato original está em XML, embora já tenha um transformador para colocá-lo no formato CSV. Estou trabalhando com MySQL 5.1.xe o banco de dados de destino é InnoDB. Existem relacionamentos entre os dados, mas não tenho nenhuma restrição e, na maioria dos casos, os dados não são limpos o suficiente para impô-los.

Responder1

Tentarimportação mysqlvocê pode importar diretamente de arquivos CSV.

Responder2

eu leria omysqlmanual, eu estava pensando em INSERT AFTER , mas LOAD DATA INFILE parece interessante "20 vezes mais rápido"...

Responder3

Existe uma ferramenta ETL de código aberto chamadaIntegração de dados Pentahoque possui uma opção de carregamento em massa do mysql (na pasta experimental na visualização Design). Você também pode carregar dados rapidamente de maneira independente de plataforma usando as etapas de entrada CSV e saída de tabela. Se precisar fazer algum processamento nos dados antes de carregá-los, você pode codificar essa lógica neste programa.

Responder4

Mesmo uma "inserção ..." em massa não deve demorar muito. Peguei uma nova exportação de banco de dados JIRA de 200 MB e carreguei em um banco de dados virgem em aproximadamente 30 segundos.

informação relacionada