Lucas boa essa sua dica.
Em 14 de setembro de 2013 12:44, Lucas Mateus < [email protected]> escreveu: > > Particularmente eu valido se existe antes de inserir, acho mais > fácil tomar a decisão (informa que ja existe ou envia um email para trocar > a senha) é mais fácil e acertivo que tratar o erro do BD. > > Para tornar esse processo mais rápido eu crio um campo do tipo > binary 16 bytes e gravo o md5 (binario sem hexadecimal) do email e utilizo > ele para consulta. > > Algo assim: select id from users where email_md5 = md5('fulano@bla') > and email = 'fulano@bla'; > > Onde somente o campo email_md5 tem index e você tem certeza que > ele sempre terá 16 bytes, se você tiver 1 milhão de usuários essa consulta > terá um custo risório. A segunda comparação é somente para evitar colisões > de md5 e o index é feito somente no campo email_md5. > > > Em 14/09/2013, às 12:06, Solli Honorio <[email protected]> escreveu: > > > Pessoal > > > > Estou escrevendo um cadastro que tem o campo email com unique index. O > meu primeiro impulso é fazer uma pesquisa no cadastro para verificar se o > email já não existe, mas me dei conta que se eu tentar criar o registro e o > email já existir, vou receber um erro informando isto. > > > > O que vocês acham disto ? É feio jogar com o erro (mesmo tratando o erro > de maneira correta) ? Ou é melhor deixar de viver perigosamente e fazer o > search antes do create. > > > > E porquê estou com está dúvida ? Não medi, mas teoricamente gravar e > tratar o erro deve (ou deveria) ser mais rápido (pq eu faço "apenas uma > operação de IO"). > > > > Abraços, > > > > Solli Honorio > > > > -- > > "o animal satisfeito dorme". - Guimarães Rosa > > =begin disclaimer > > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > > SaoPaulo-pm mailing list: [email protected] > > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > > =end disclaimer > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > -- .............................................................................. *Nilton OS* | *DNA Linux a 15 anos* | linuxpro.com.br<http://www.linuxpro.com.br> *"Não são os grandes homens que transformam o mundo, mas sim os fracos nas mãos de um grande Deus."*
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
