Ir para conteúdo
Fórum Script Brasil
  • 0

Travamento de tabelas


delanez

Pergunta

Boa tarde pessoal,

Meu problema é o seguinte:

Desenvolvi um e-commerce, e estou integrando ele com um sistema ERP de um cliente.

A integração é feita através de arquivos TXT, o ERP gera esses arquivos, e eu fiz um monitoramento de 30 em 30min para verificar se existe arquivo para a integração

Quando eu acho esses arquivos, eu inicio uma transacao, dou um TRUNCATE na tabela, monta um string com os inserts, e executo ela através do PDO do PHP e no fim dou o commit.

Mas o problema, é que a carga é grande, e nesse tempo o site fica "travado", gostaria de saber se alguém tem uma solução melhor pra essa carga
 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olá, porque você não tenta quebra em pequenos blocos os inserts? Use sleep do php para da uma pausa no loop, outra coisa é fazer auto commit dos inserts e como é um ecomerce tive muito movimento você pode criar um banco slave, assim seu código deve fazer leitura no slave e o escrita no má

ster.

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade ele faz um único insert, algo como:

$connPDO->beginTransaction();

try{

       $connPDO->query("TRUNCATE TABLE produtos");


       $connPDO->query("INSERT INTO produtos(id, descricao, valor) VALUES (1, 'teste 1', 10.5), (2, 'teste 2', 23.00), (3, 'teste 3', 28.00) ");

       $connPDO->commit();

}catch(Exception $e){
        $connPDO->rollBack();
}

Link para o comentário
Compartilhar em outros sites

  • 0

Uma dúvida o insert não é operação bloqueante no banco, no terminal do mysql ele indicar as queries que estão mais lenta? será que o problema não é parse do txt?

Qual a logica desta integração, pelo que entendi você deleta a tabela produtos, ela não é importante para o e-commerce?

Link para o comentário
Compartilhar em outros sites

  • 0

desculpa a demora, ela é importante sim,

Mas é que ficaria muito lento comparar item a item para ver o que mudou nos produtos.

mas o estranho, que o insert não demora tanto tempo assim, é coisa de 2 ou 3 segundos, mas mesmo assim o banco está ficando travado por bastante tempo, não conheço muito de mysql, não sei o que pode estar acontecendo.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...