<p>acho q tem q usar java</p>
<div class="gmail_quote">Em 15/09/2013 17:50, "Lucas Mateus" <<a href="mailto:lucasmateus.oliveira@gmail.com">lucasmateus.oliveira@gmail.com</a>> escreveu:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
        Show Eden, mas seu teste não tem absolutamente nada a ver com o que eu disse =)<br>
<br>
<br>
Em 15/09/2013, às 11:58, Eden Cardim <<a href="mailto:eden@insoli.de">eden@insoli.de</a>> escreveu:<br>
<br>
>>>>>> "André" == André Walker <<a href="mailto:andre@andrewalker.net">andre@andrewalker.net</a>> writes:<br>
><br>
>    André> Será que isso é realmente necessário? Quer dizer... qual o<br>
>    André> problema de ter um índice no campo email mesmo? De qualquer<br>
>    André> forma, você já vai ter um custo computacional na função md5<br>
>    André> (ainda que pequeno), e tenho a impressão que índices em<br>
>    André> campos texto não são tão ruins assim. Talvez varie de SGBD<br>
>    André> pra SGBD? Em PostgreSQL, por exemplo, seria relevante ter<br>
>    André> essa coluna email_md5?<br>
><br>
> Imagino que isso seja um "mysqlianismo". No postgresql não precisa da<br>
> coluna adicional, você pode criar um índice pré-computado:<br>
><br>
> CREATE INDEX email_md5 ON test (md5(email));<br>
><br>
> No meu teste rápido aqui, ficou mais lento usar md5, imagino que seja<br>
> por conta do custo computacional de calcular o md5 pra toda consulta.<br>
> Porque depois do cálculo, a comparação com o índice é efetivamente a<br>
> mesma. Aliás, eu só vejo algum benefício potencial em usar md5 se a<br>
> string resultante do md5 for *menor* que a maioria das strings de<br>
> email, e não me parece que seja esse o caso. Mesmo assim, o postgresql<br>
> usa o tamanho da string como otimização de busca. Quando você<br>
> normaliza tudo pruma string md5 com o mesmo tamanho perde-se essa<br>
> otimização. De qualquer forma, tá aí:<br>
><br>
> edenc=# \d test<br>
>          Table "public.test"<br>
> Column |       Type        | Modifiers<br>
> --------+-------------------+-----------<br>
> email  | character varying | not null<br>
> Indexes:<br>
>    "test_pkey" PRIMARY KEY, btree (email)<br>
>    "email_md5" btree (md5(email::text))<br>
><br>
> edenc=# explain select email from test where email = 'c4ca4238a0b923820dcc509a6f75849b';<br>
>                                QUERY PLAN<br>
> --------------------------------------------------------------------------<br>
> Index Scan using test_pkey on test  (cost=0.00..8.54 rows=1 width=33)<br>
>   Index Cond: ((email)::text = 'c4ca4238a0b923820dcc509a6f75849b'::text)<br>
> (2 rows)<br>
><br>
> edenc=# explain select email from test where md5(email) = md5('c4ca4238a0b923820dcc509a6f75849b');<br>
>                                  QUERY PLAN<br>
> -------------------------------------------------------------------------------<br>
> Index Scan using email_md5 on test  (cost=0.00..8.30 rows=1 width=33)<br>
>   Index Cond: (md5((email)::text) = '28c8edde3d61a0411511d3b1866f0636'::text)<br>
> (2 rows)<br>
><br>
> <a href="https://gist.github.com/edenc/8ff84819c38bf19c3151" target="_blank">https://gist.github.com/edenc/8ff84819c38bf19c3151</a><br>
><br>
>              Rate    MissMD5     HitMD5 MissNormal  HitNormal<br>
> MissMD5    52165/s         --        -5%        -8%       -13%<br>
> HitMD5     55157/s         6%         --        -3%        -8%<br>
> MissNormal 56948/s         9%         3%         --        -5%<br>
> HitNormal  59701/s        14%         8%         5%         --<br>
><br>
> --<br>
> Eden Cardim -- Insolide Soluções de TI Ltda.<br>
> +55 11 9644 8225<br>
> <a href="http://insoli.de" target="_blank">http://insoli.de</a><br>
> =begin disclaimer<br>
>   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
> =end disclaimer<br>
<br>
=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
</blockquote></div>