Adicionar 1 milhão de registros aleatórios [RESOLVIDO]

1. Adicionar 1 milhão de registros aleatórios [RESOLVIDO]

Edimar
dimasdaros

(usa Arch Linux)

Enviado em 10/08/2012 - 01:14h

Boa noite pessoal,

quero fazer alguns testes aqui e preciso adicionar alguns registros em uma tabela no banco, mas queria adicionar na casa dos milhões.

fiz um laço de repetição aqui, gerei os insert em um arquivo e estava jogando para o banco com o comando:




mysql -u root -p teste < dados.sql



mas demora muito, em quase 1h foram importados somente cerca de 25mil registros.
Existe alguma forma mais rápida de fazer esse processo?


Obrigado pela ajuda.
abraço
até mais


  


2. MELHOR RESPOSTA

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 10/08/2012 - 08:49h

Depende, ele vai ler o arquivo insert a insert colocando os dados no banco, atualizando indices, etc.

Como vc vai fazer muitos inserts, prefira remover os indices existem e adicioná-los apenas após a finalização dessa bateria de inserts.

3. Re: Adicionar 1 milhão de registros aleatórios [RESOLVIDO]

Edimar
dimasdaros

(usa Arch Linux)

Enviado em 10/08/2012 - 09:55h

Edit.

Coloquei num cloud que tenho na Uol para ver o que ia dar, usando o 'mysqlupdate'.
Em 8 minutos consegui 37000.
Acredito ser por causa do notebook mesmo, HD muito lento.
Mas quero agilizar ainda mais isso hehe
vai levar cerca de 1h para inserir.



-----------

rai3mb escreveu:

Depende, ele vai ler o arquivo insert a insert colocando os dados no banco, atualizando indices, etc.

Como vc vai fazer muitos inserts, prefira remover os indices existem e adicioná-los apenas após a finalização dessa bateria de inserts.


Opa, obrigado pelo retorno rai3mb.
criei uma tabela somente com um varchar, sem nenhuma chave primária nem nada para fazer o teste, mas a velocidade ficou basicamente a mesma.

Tente direto com o comando 'mysqlupdate' também, assim:


for ((a=1; a <= 5000000 ; a++)) do
mysqlupdate=`(mysql -u teste2 teste -e "INSERT INTO teste2 (teste2) VALUES ('TQp4S5s=');")`
done


mas para minha surpresa teve um desempenho um pouco inferior do que somente importar um arquivo com os INSERT.
Acredito que pode ser meu HD aqui, que estou fazendo em um notebook, a luz do HD nem apaga.

Vou tentar em uma outra máquina aqui e posto os resultados.
Mas obrigado mesmo assim.

Abraço.


4. Re: Adicionar 1 milhão de registros aleatórios [RESOLVIDO]

Edimar
dimasdaros

(usa Arch Linux)

Enviado em 11/08/2012 - 08:13h

Opa, consegui gravar 2,6 milhões de registros em poucos segundos, meu olho até brilhou uaheuae

um select para pegar qualquer registro no meio deles levou 0,57s aqui no meu computador, excelente.


Meu erro ao inserir os registros era estar fazendo vários registros, várias instruções SQL, minha solução foi mais simples do que imaginava, passei todos os dados que queria usando um insert apenas:


INSERT INTO teste2 (dados) VALUES ('JKHSafiuah'),('ksjadhkasjhdusafiu'),('ksajdhasiufadsgui').......


Como o teste que eu queria fazer era somente para ver como se comportaria em um select com vários registros, deu certo.
Para aumentar a taixa de INSERTS/segundo, somente comprando um HD melhor?


Mas vlw ai pela ajuda.
abraço






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts