Manual MySync

Performance (Lotes)

O desempenho da sincronização depende principalmente do tamanho dos lotes, da estrutura dos índices no destino e da janela de execução. Este capítulo traz orientações simples para obter melhores tempos sem comprometer a estabilidade.


Tamanho do lote

  • O que é: quantidade de registros processados por vez.
  • Impacto: lotes maiores reduzem o número de viagens ao banco, mas consomem mais memória e podem causar bloqueios mais longos.
  • Recomendação inicial:
    • Tabelas pequenas: lotes médios/grandes.
    • Tabelas grandes: comece com lotes médios e ajuste conforme a resposta do servidor.
  • Ajuste iterativo: se notar lentidão ou estouro de memória, reduza o lote; se estiver folgado, aumente gradualmente.

Índices e chaves

  • Índice na chave de conflito (ex.: id) é essencial para upsert eficiente.
  • Para cargas integrais, considere criar ou reconstruir índices após a carga, quando possível.
  • Evite índices desnecessários durante inserções massivas (cada índice extra é trabalho a mais para cada linha).

Janela de execução

  • Programe cargas maiores em horários de baixo movimento do banco.
  • Avalie a competição por recursos (CPU/IO/RAM) com outros processos críticos.
  • Se houver time-out na origem ou destino, prefira lotes menores e janelas menos concorridas.

Confiabilidade e retomada

  • Em tabelas grandes, priorize lotes que permitam retomar do ponto de falha sem reprocessar tudo.
  • Mantenha um log simples: data/hora, tabela, quantidade processada, sucesso/erro.
  • Ao retomar, valide os últimos blocos para evitar duplicidade ou lacunas.

Consumo de recursos

  • Memória: lotes muito grandes podem acumular objetos em RAM. Ajuste o tamanho.
  • IO de disco: grandes volumes de escrita podem aumentar a latência; prefira rodar fora do horário de pico.
  • Rede: conexões instáveis pedem lotes menores para reduzir o impacto de reenvio.

Boas práticas rápidas

  • Comece com um lote médio e ajuste com base em métricas reais.
  • Tenha índice na chave de conflito para acelerar verificações de existência.
  • Evite múltiplas cargas pesadas simultâneas no mesmo servidor.
  • Monitore tempo total, linhas por segundo e uso de recursos.

Quando o desempenho não melhora

  • Revise a estrutura da tabela de destino (tipos e índices adequados).
  • Cheque a saúde do servidor (CPU/IO/locks).
  • Reduza o lote e teste novamente; às vezes a estabilidade traz melhor throughput no final.

Próximo: FAQ • Voltar: Política de Conflito