Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Prezados,
Qual seria a forma mais correta/usual para se evitar a duplicação de registros durante um processo de importação entre tabelas? Quero levar em conta também a questão de performance.
Eu sempre faço uma verificação com um "SELECT" antes do "INSERT". Caso o registro não exista na tabela de destino é que eu faço o "INSERT" do novo registro. Penso que esse método não seja muito legal quando tenho uma volume de registros muito grande, apesar deu nunca ter tido nenhum tipo de problema. Pergunta: Seria melhor utilizar um "INSERT CONDICIONAL", ou seja, utilizar um "WHERE NOT EXIST" e fazer a verificação no próprio momento da inserção?
Grato e aguardo qualquer comentário.
Olá Motta, boa tarde.
Na realidade seriam varias tabelas, mas mencionei somente uma pra ser mais sucinto. Tomando uma como exemplo aplicaria o método para as outras.
A importação seria uma coleta de dados diária, podendo ocorrer uma unica vez ao dia como várias vezes também.
O volume pode variar muito entre as três tabelas envolvidas. Na tabela mais expressiva pode variar de 1 registro a mais ou menos 3000 registro para cada processo de importação.
Mais uma vez obrigado pela sua atenção.
Sendo diária eu usaria chave primárias e/ou únicas para impedir duplicidades.
Sendo diária eu usaria chave primárias e/ou únicas para impedir duplicidades.
Entendo.
Mas quanto a questão de performance? E Outra coisa: Como ficaria a questão a nível de aplicação (client)? Ao tentar fazer uma inclusão o banco geraria exceção correto? Trata isso e informava ao aplicativo (client) ou deixaria transparente? Como deveria ficaria?
A performance em geral é boa pois as constraints criam um índice, quanto à aplicação não sei detalhes pois não trabalho com mysql/php mas basicamente é a tratar o erro/exceção.
A performance em geral é boa pois as constraints criam um índice, quanto à aplicação não sei detalhes pois não trabalho com mysql/php mas basicamente é a tratar o erro/exceção.
Entendido. Você já me ajudou muito com os seus comentários.
Forte abraço!
Uma chave primária ou única garante que não ocorram duplicidades mas dependendo do volume pode retardar um processo de importação.
Como seria esta "importação" ? uma vez só (migração) ?
Processo de dia a dia ?
Qual seria o volume ?.
.