sql >> Database teknologi >  >> RDS >> Mysql

Hvad er hurtigere/bedre at bruge:MySQL- eller PHP md5-funktionen?

Hvis din ansøgning kun beregner md5, når nogen registrerer sig på dit websted, eller logger ind, ejer mange opkald til md5, vil du foretage i timen? Et par hundrede? Hvis ja, synes jeg ikke, at den rigtig lille forskellen mellem PHP og MySQL vil overhovedet være betydelig.

Spørgsmålet burde være mere som "hvor skal jeg placere det faktum, at adgangskoden er gemt ved hjælp af md5" end "hvad får mig til at vinde næsten ingenting".

Og som en sidenote kunne et andet spørgsmål være:hvor har du råd til at bruge ressourcer til den slags beregninger? Hvis du har 10 PHP-servere og en DB-server allerede under hård belastning, får du dit svar;-)

Men bare for sjov :

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

Og i PHP :

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

giver :

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

Men du vil sandsynligvis ikke beregne en million md5 på denne måde, vel?

(Og dette har intet at gøre med at forhindre SQL-injektioner:bare escape/citer dine data! altid! eller brug forberedte sætninger)



  1. Har Oracle et filtreret indekskoncept?

  2. Sådan importeres CSV-fil i PostgreSQL

  3. Hvordan man effektivt bestemmer ændringer mellem rækker ved hjælp af SQL

  4. @ Symbol - en løsning til rekursiv SELECT-forespørgsel i Mysql?