sql >> Databasteknik >  >> RDS >> Mysql

Vad är snabbare/bättre att använda:MySQL- eller PHP md5-funktionen?

Om din applikation bara beräknar md5 när någon registrerar sig på din sida, eller loggar in, äger många samtal till md5 kommer du att göra per timme? Ett par hundra? Om så är fallet, tror jag inte att den riktigt små skillnaden mellan PHP och MySQL kommer att vara betydande överhuvudtaget.

Frågan borde vara mer som "var ska jag lägga det faktum att lösenord lagras med md5" än "vad får mig att vinna nästan ingenting".

Och som en anteckning kan en annan fråga vara:var har du råd att spendera resurser för den typen av beräkningar? Om du har 10 PHP-servrar och en DB-server redan under hög belastning får du ditt svar;-)

Men bara för skojs skull :

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

Och i PHP :

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

ger :

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

Men du kommer förmodligen inte att beräkna en miljon md5 så här, eller hur?

(Och detta har ingenting att göra med att förhindra SQL-injektioner:bara escape/citera dina data! alltid! eller använd förberedda satser)



  1. Våren 2011 PostgreSQL-konferenser, USA/Kanada

  2. php / Mysql bästa trädstruktur

  3. Det gick inte att bearbeta formatparametrar med mysql.connector i Python

  4. Trunkering av alla tabeller i en Postgres-databas