[SP-pm] DBIx::Class
Lucas Mateus
lucasmateus.oliveira at gmail.com
Sun Sep 15 13:17:05 PDT 2013
É disso que to falando, usar o MD5 mesmo (binário) e não md5 em hexadecimal, e acho sim muito comum emails com mais de 16 bytes.
E se executar a query já passado o email com o md5, sem precisar usar a função do BD é ainda melhor, ja que o BD faz o hex por conta própria.
mysql> show create table users_2;
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| users_2 | CREATE TABLE `users_2` (
`email` varchar(60) default NULL,
`email_md5` binary(16) default NULL,
KEY `idx_email` (`email`),
KEY `idx_email_md5` (`email_md5`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select email from users_2 where email = 'teste967847 em domain.com';
+------------------------+
| email |
+------------------------+
| teste967847 em domain.com |
+------------------------+
1 row in set (0.21 sec)
mysql> select email from users_2 where email_md5 = unhex(md5('teste967848 em domain.com'));
+------------------------+
| email |
+------------------------+
| teste967848 em domain.com |
+------------------------+
1 row in set (0.00 sec)
Em 15/09/2013, às 16:44, Eden Cardim <eden em insoli.de> escreveu:
>>>>>> "Lucas" == Lucas Mateus <lucasmateus.oliveira em gmail.com> writes:
>
> Lucas> Show Eden, mas seu teste não tem absolutamente nada a
> Lucas> ver com o que eu disse =)
>
> A única diferença do que você mostrou é que no meu caso, o campo
> email_md5 não existe porque não precisa, o índice resolve. E eu
> coloquei valores md5 no campo email pra ter alguma aleatoriedade no
> teste.
>
> --
> Eden Cardim -- Insolide Soluções de TI Ltda.
> +55 11 9644 8225
> http://insoli.de
> =begin disclaimer
> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
More information about the SaoPaulo-pm
mailing list