sql >> Databáze >  >> RDS >> Mysql

Co je rychlejší/lepší použít:funkci MySQL nebo PHP md5?

Pokud vaše aplikace počítá pouze md5, když se někdo zaregistruje na vašem webu nebo se přihlašuje, vlastníte mnoho volání na md5, uděláte za hodinu? Pár stovek? Pokud ano, nemyslím si, že skutečně malý rozdíl mezi PHP a MySQL bude vůbec významný.

Otázka by měla znít spíše jako "kam mám dát skutečnost, že hesla jsou uložena pomocí md5" než "co mě nutí skoro nic nevyhrávat".

A jako vedlejší poznámka by mohla znít další otázka:kde si můžete dovolit utrácet zdroje na tento druh výpočtů? Pokud máte 10 PHP serverů a jeden DB server již pod velkým zatížením, dostanete odpověď;-)

Ale jen pro zajímavost :

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

A v PHP :

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

dává :

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

Ale asi takhle nebudete počítat milion md5, že?

(A to nemá nic společného se zabráněním vkládání SQL:stačí uniknout/citovat svá data! vždy! nebo použít připravené příkazy)



  1. Jak záměrně vytvořit dlouhotrvající dotaz MySQL

  2. Existuje efektivnější způsob stránkování v Hibernate než provádění výběrových a počítání dotazů?

  3. Python REST API s Flask, Connexion a SQLAlchemy – část 3

  4. Aktualizovat, pokud existuje, vložit, pokud neexistuje