[SP-pm] DBIx::Class

André Walker andre at andrewalker.net
Sat Sep 14 10:39:32 PDT 2013


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 at bla') and email = 'fulano at 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é



More information about the SaoPaulo-pm mailing list