sql >> Database >  >> RDS >> Mysql

Wat is sneller/beter te gebruiken:de MySQL- of PHP md5-functie?

Als uw toepassing alleen md5 berekent wanneer iemand zich registreert op uw site, of inlogt, veel oproepen naar md5 heeft, gaat u dan per uur doen? Paar honderden? Als dat zo is, denk ik niet dat de echt kleine het verschil tussen PHP en MySQL zal helemaal niet significant zijn.

De vraag zou meer moeten zijn als "waar plaats ik het feit dat wachtwoorden worden opgeslagen met md5" dan "waardoor ik bijna niets win".

En, als een kanttekening, een andere vraag zou kunnen zijn:waar kun je het je veroorloven om middelen uit te geven voor dat soort berekeningen? Als je 10 PHP-servers hebt en één DB-server die al zwaar wordt belast, krijg je je antwoord;-)

Maar, gewoon voor de lol :

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

En in PHP :

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

geeft :

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

Maar je gaat waarschijnlijk toch niet zo'n miljoen md5 berekenen, of wel?

(En dit heeft niets te maken met het voorkomen van SQL-injecties:gewoon escape/citaat uw gegevens! altijd! of gebruik voorbereide instructies)



  1. Hernoemen van inplugbare database

  2. Is er een MySQL-equivalent van sprintf?

  3. Retourresultaat van PostgreSQL als JSON-array?

  4. NodeJS MySQL - Hoe te weten of de verbinding is vrijgegeven of niet?