[FUG-BR] Importação de SQL muito mas muito lento

Welkson Renny de Medeiros welkson em focusautomacao.com.br
Sexta Outubro 28 10:52:48 BRST 2011


Marcelo Gondim escreveu:
> Olá pessoal,
>
> Montei um sistema FreeBSD novo em um HD Sata II cujo teste de velocidade 
> deu uns 85MB/s usando o dd como testador. Até aqui tranquilo.
> No servidor Linux eu fiz um mysqldump da base que levou um tempo 
> considerável de uns 20 minutos por aí me gerando um arquivo SQL de 1.6Gb.
> Eis que peguei esse sql e fui importar no MySQL do FreeBSD que montei, 
> coisa que até agora fazia normalmente sendo que dessa vez já tem 4 horas 
> que está importando e ainda não acabou.
> Coloquei até um time na frente do comando para que quando acordasse 
> pudesse ver o tempo que levou mas acordei e ainda está fazendo.
>
> Tirando a possibilidade do hd estar com problemas porque havia feito uns 
> testes e não tinha encontrado nada, alguém faz idéia do que pode estar 
> causando essa lentidão absurda? :(
>
> Instalei o mytop para ver o que ocorria e tá lá a instrução:
>
> MySQL on localhost 
> (5.0.92-log)                                                                                                                 
> up 0+05:05:26 [09:59:23]
>   Queries: 1.3k   qps:    0 Slow:   758.0         Se/In/Up/De(%):    
> 00/86/00/01
>               qps now:    1 Slow qps: 0.0  Threads:    2 (   2/   1) 
> 00/00/00/00
>   Key Efficiency: 89.0%  Bps in/out: 64.2k/ 1.3k   Now in/out:  21.0/202.8k
>   Master: mysql-bin.000004/130386302 do:  ign:
>
>         4      root       localhost    amavisd         0  Query INSERT 
> INTO `msgs` VALUES 
> (0,'Xd-lNqGsr21c','OAKrnkFF6DbX','03004-03-238',1302211535,'20110407T212535Z',1
>         9      root       localhost    amavisd         0  Query show 
> full processlist
>
>         9      root       localhost    amavisd         0  Query show 
> full processlist
>         4      root       localhost    amavisd         8  Query INSERT 
> INTO `msgs` VALUES 
> (0,'Xhh-6D2A2Km3','uZFrbYygiyc3','15174-04',1313098381,'20110811T213301Z',16434
>
>         9      root       localhost    amavisd         0  Query show 
> full processlist
>         4      root       localhost    amavisd        29  Query INSERT 
> INTO `msgs` VALUES 
> (0,'Xhh-6D2A2Km3','uZFrbYygiyc3','15174-04',1313098381,'20110811T213301Z',16434
>
>         9      root       localhost    amavisd         0  Query show 
> full processlist
>         4      root       localhost    amavisd        14  Query INSERT 
> INTO `msgs` VALUES 
> (0,'XmRZtbsqKoWA','Fy5S22U8sVHv','27252-03-28',1302225807,'20110408T012327Z',12
>
> Pensei: nossa o mysql deve estar consumindo uns 200% de CPU e aí no top 
> vejo que ele está apenas com 0.00%:
>
>   2092 mysql       12  44    0   489M   119M ucond   0  18:47  0.05% mysqld
>   2134 root         1  44    0 19900K  4708K sbwait  1   0:21  0.00% mysql
>
> No dmesg não acusa nenhuma mensagem e nem no messages. Realmente não 
> entendo porque não acabou de importar ainda

Uma boa prática na inserção de grandes quantidades de dados é antes 
remover os índices.
Quando concluir a inserção, recria.

Isso melhora o muito o desempenho.

Índice é bom para consulta, para inserção deixa o processo bem mais lento.

-- 
Welkson Renny de Medeiros
Desenvolvimento / Gerência de Redes
Focus Automação Comercial
FreeBSD Community Member 





Mais detalhes sobre a lista de discussão freebsd