Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa yang lebih cepat/lebih baik untuk digunakan:fungsi MySQL atau PHP md5?

Jika aplikasi Anda hanya menghitung md5 ketika seseorang mendaftar di situs Anda, atau sedang login, memiliki banyak panggilan ke md5 yang akan Anda lakukan per jam ? Beberapa ratus? Jika demikian, menurut saya sangat kecil perbedaan antara PHP dan MySQL akan sangat signifikan.

Pertanyaannya seharusnya lebih seperti "di mana saya meletakkan fakta bahwa kata sandi disimpan menggunakan md5" daripada "apa yang membuat saya hampir tidak menang".

Dan, sebagai catatan tambahan, pertanyaan lain mungkin:di mana Anda dapat menghabiskan sumber daya untuk perhitungan semacam itu? Jika Anda memiliki 10 server PHP dan satu server DB sudah di bawah beban berat, Anda mendapatkan jawaban Anda;-)

Tapi, hanya untuk bersenang-senang :

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

Dan di PHP :

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

memberikan :

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

Tapi Anda mungkin tidak akan menghitung satu juta md5 seperti ini, bukan?

(Dan ini tidak ada hubungannya dengan mencegah injeksi SQL :keluarkan saja/kutip data Anda ! selalu ! atau gunakan pernyataan yang sudah disiapkan)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mensimulasikan grup penangkapan regex di mysql

  2. Cara menonaktifkan opsi only_full_group_by di Laravel

  3. Penggabungan kolom mengembalikan Null Mysql - Php

  4. Sekuel kueri geospasial:temukan n titik terdekat ke suatu lokasi

  5. Mysql PDO panjang data LONGBLOB maksimum saat diambil