On Sat, Sep 14, 2013 at 12:44:35PM -0300, Lucas Mateus wrote:
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.
Será que isso é realmente necessário? Quer dizer... qual o problema de ter um índice no campo email mesmo? De qualquer forma, você já vai ter um custo computacional na função md5 (ainda que pequeno), e tenho a impressão que índices em campos texto não são tão ruins assim. Talvez varie de SGBD pra SGBD? Em PostgreSQL, por exemplo, seria relevante ter essa coluna email_md5? Att. André =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
