Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist schneller/besser zu verwenden:die MySQL- oder PHP-md5-Funktion?

Wenn Ihre Anwendung md5 nur berechnet, wenn sich jemand auf Ihrer Website registriert oder sich anmeldet, werden Sie viele Aufrufe an md5 pro Stunde durchführen? Ein paar hundert? Wenn ja, finde ich das nicht wirklich klein Unterschied zwischen PHP und MySQL wird überhaupt signifikant sein.

Die Frage sollte eher lauten "wo platziere ich die Tatsache, dass Passwörter mit md5 gespeichert werden" als "was dazu führt, dass ich fast nichts gewinne".

Und als Nebenbemerkung könnte eine andere Frage lauten:Wo können Sie es sich leisten, Ressourcen für diese Art von Berechnungen aufzuwenden? Wenn Sie 10 PHP-Server und einen DB-Server bereits stark ausgelastet haben, erhalten Sie Ihre Antwort;-)

Aber nur so zum Spaß :

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

Und in PHP:

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

ergibt :

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

Aber Sie werden wahrscheinlich nicht so eine Million md5 berechnen, oder ?

(Und das hat nichts mit dem Verhindern von SQL-Injektionen zu tun:Escapezeichen/zitieren Sie Ihre Daten einfach! immer! oder verwenden Sie vorbereitete Anweisungen)