shelter Postado Setembro 27, 2014 Denunciar Share Postado Setembro 27, 2014 Boa noite galera, Estou com uma missão que não estou conseguindo resolver, vamos La: Tenho 2 tabelas: Primeira (1) tem 5.000.000.000 de registros. Segunda (2) tem cerca de 500.000 registros. Quero efetuar um Update conforme uma consulta na tabela 1. Pontos em comum em ambas tabelas: Campo telefone. Fiz algumas tentativas mais ficou muito lento: Segue meu ex.: DELIMITER $$ DROP PROCEDURE IF EXISTS `batimento`.`teste` $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `teste`() BEGIN if exists(SELECT * from tabela1 a , tabela2 b where a.telefone = b.telefone ) then begin UPDATE tabela2 SET consta=1 ; end; end if; END $$ DELIMITER ; Conto com a ajuda dos amigos. Grato Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Setembro 27, 2014 Denunciar Share Postado Setembro 27, 2014 UPDATE tabela2 t2INNER JOIN tabela1 t1 ON t1.telefone = t2.telefoneSET consta = 1;Para acelerar o processo tenha indices por telefone em ambas as tabelas. Link para o comentário Compartilhar em outros sites More sharing options...
0 shelter Postado Setembro 28, 2014 Autor Denunciar Share Postado Setembro 28, 2014 Qual seria o campo mais indicado para criar o indice? Grato Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Setembro 28, 2014 Denunciar Share Postado Setembro 28, 2014 telefone Link para o comentário Compartilhar em outros sites More sharing options...
0 shelter Postado Outubro 9, 2014 Autor Denunciar Share Postado Outubro 9, 2014 Grato resolvido Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
shelter
Boa noite galera,
Estou com uma missão que não estou conseguindo resolver, vamos La:
Tenho 2 tabelas:
Primeira (1) tem 5.000.000.000 de registros.
Segunda (2) tem cerca de 500.000 registros.
Quero efetuar um Update conforme uma consulta na tabela 1.
Pontos em comum em ambas tabelas:
Campo telefone.
Fiz algumas tentativas mais ficou muito lento:
Segue meu ex.:
DELIMITER $$
DROP PROCEDURE IF EXISTS `batimento`.`teste` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `teste`()
BEGIN
if exists(SELECT * from tabela1 a , tabela2 b where a.telefone = b.telefone ) then
begin
UPDATE tabela2 SET consta=1 ;
end;
end if;
END $$
DELIMITER ;
Conto com a ajuda dos amigos.
Grato
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados