Mysql
 sql >> Base de données >  >> RDS >> Mysql

Qu'est-ce qui est plus rapide/mieux à utiliser :la fonction MySQL ou PHP md5 ?

Si votre application ne calcule md5 que lorsque quelqu'un s'inscrit sur votre site, ou se connecte, posséderez-vous de nombreux appels vers md5 ferez-vous par heure ? Quelques centaines ? Si oui, je ne pense pas que le vraiment petit différence entre PHP et MySQL sera significative du tout.

La question devrait ressembler davantage à "où dois-je mettre le fait que les mots de passe sont stockés à l'aide de md5" que "qu'est-ce qui me fait gagner presque rien".

Et, en passant, une autre question pourrait être :où pouvez-vous vous permettre de dépenser des ressources pour ce genre de calculs ? Si vous avez 10 serveurs PHP et un serveur de base de données déjà sous forte charge, vous obtenez votre réponse;-)

Mais juste pour le fun :

mysql> select benchmark(1000000, md5('test'));
+---------------------------------+
| benchmark(1000000, md5('test')) |
+---------------------------------+
|                               0 |
+---------------------------------+
1 row in set (2.24 sec)

Et en PHP :

$before = microtime(true);
for ($i=0 ; $i<1000000 ; $i++) {
    $a = md5('test');
}
$after = microtime(true);
echo ($after-$before) . "\n";

donne :

$ php ~/developpement/tests/temp/temp.php
3.3341760635376

Mais vous ne calculerez probablement pas un million de md5 comme ça, n'est-ce pas ?

(Et cela n'a rien à voir avec la prévention des injections SQL :il suffit d'échapper/de citer vos données ! toujours ! ou d'utiliser des instructions préparées)