Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

murd

Importar grande SQL

Recommended Posts

Bom dia amigos, tudo bem?

Bom é o seguinte, estou construindo um sistema,

e estou com algumas dúvidas sobre o SQL.

 

 

O firebird, pelo que pude ver, salva arquivos de extensão .GDB por exemplo

o que torna extremamente fácil fazer a instalação do banco de dados, tendo em vista

que os dados já prontos ficam neste arquivo.

 

Minha dúvida é a seguinte:

Estou utilizando MYSQL no meu sistema, e a versão

inicial do sistema já irá com algumas tabelas preenchidas

como por exemplo a tabela de LOGRADOUROS, BAIRROS e etc relacionadas a endereço

que contém os seguintes numeros de informações:

 

Bairros: 38,777

cidades: 10,053

LOGRADOUROS: 709,440

uf: 27

 

Eu baixei esta base na internet com uns comandos de INSERT em suas respectivas tabelas.

O problema é que é EXTREMAMENTE LENTO incluir estes dados na base de dados via NAVICAT, HeidiSql etc...

 

E aí me surgiu a seguinte dúvida:

Meu computador não é tão ruim assim.

Toda vez que eu for implantar o sistema em um cliente novo eu vou ter que rodar esses INSERTS iniciais?

Não tem como levar só um arquivo .frm por exemplo q vi aqui que são os casos do MYSQL?

 

Existe algum modo de importar esses dados mais rapido?

Afinal são quase 1 milhão de dados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Toda vez que eu for implantar o sistema em um cliente novo eu vou ter que rodar esses INSERTS iniciais?

Não tem como levar só um arquivo .frm por exemplo q vi aqui que são os casos do MYSQL?

Nunca tentei "importar" um bd por meio de arquivos. Mas imagino que possa haver problemas de fazer isso entre máquinas de arquiteturas diferentes. Por exemplo, o tamanho de um campo INT em arquitetura de 32 bits é diferente do tamanho de um campo INT em uma máquina 64 bits

 

 

Existe algum modo de importar esses dados mais rapido?

Afinal são quase 1 milhão de dados...

nunca usei nenhum dos dois programas que citou, mas já tentou fazer isso pela linha de comando? é direto no mysql. capaz que seja mais rápido :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como usar algumas técnicas para esta carga ser mais veloz...

Qual tipo de tabela (MyISAM ou InnoDB) esta usando?

 

Exemplos: LOCK e LOAD_DATA_INFILE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como usar algumas técnicas para esta carga ser mais veloz...

Qual tipo de tabela (MyISAM ou InnoDB) esta usando?

 

Exemplos: LOCK e LOAD_DATA_INFILE

 

Então cara, o que fica melhor? MyISAM ou InnoDB ?

Posso mudar aqui, estou começando agora.

Não sei qual estou utilizado mas provavelmente é InnoDB.

 

O que é Lock e LOAD_DATA_INFILE ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

LOCK é uma técnica utilizada para previnir inconsistências, isolar uma tabela ou registro até que a operação seja concluída, porém, quando a tabela esta em estado de LOCK, os processos são realizados mais rapidamente, propício para carga de grande volume de dados em tabelas MyISAM. http://dev.mysql.com/doc/refman/5.0/en/optimizing-myisam-bulk-data-loading.html

 

Você pode desabilitar algumas verificações para realização da carga em tabelas InnoDB. http://dev.mysql.com/doc/refman/5.0/en/optimizing-innodb-bulk-data-loading.html

 

LOAD_DATA_INFILE é um comando interno do MySQL para carga de arquivos. http://dev.mysql.com/doc/refman/5.0/en/load-data.html

 

MyISAM é mais rápido que InnoDB, você pode criar seu banco de dados, todas as tabelas como MyISAM, carregar os dados, depois rodar um script para alterar o motor das tabelas e criar as chaves estrangeiras (uma das limitações do MyISAM é a impossibilidade de criar relação de integridade).

 

Repare que algumas técnicas são compatíveis, ou seja, você pode aplicar 2 técnicas para fazer a carga mais rápido. Mas outras técnicas não são compatíveis, ou você aplica 1 ou a outra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.