Mysql
 sql >> база данни >  >> RDS >> Mysql

Какво е по-бързо/по-добро за използване:функцията MySQL или PHP md5?

Ако приложението ви изчислява само md5, когато някой се регистрира на вашия сайт или влиза, притежавате ли много обаждания към md5, ще правите ли на час? Няколко стотици? Ако е така, не мисля, че наистина малъкта разликата между PHP и MySQL изобщо ще бъде значителна.

Въпросът трябва да е по-скоро като „къде да сложа факта, че паролата се съхранява с md5“, отколкото „какво ме кара да спечеля почти нищо“.

И като странична бележка, друг въпрос може да бъде:къде можете да си позволите да харчите ресурси за този вид изчисления? Ако имате 10 PHP сървъра и един DB сървър вече под голямо натоварване, получавате отговора си;-)

Но само за забавление :

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

И в PHP :

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

дава :

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

Но вероятно няма да изчислявате милион md5 по този начин, нали?

(И това няма нищо общо с предотвратяването на SQL инжекции:просто избягайте/цитирайте данните си! винаги! или използвайте подготвени изрази)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка в набора от данни на Visual Studio MySQL

  2. Намерете група записи, които отговарят на множество стойности

  3. Индексирайте MySQL база данни с Apache Lucene и ги поддържайте синхронизирани

  4. Как да създавате и изпълнявате MySQL съхранени функции и процедури

  5. MySQL заменя всички бели интервали с -