Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Điều gì nhanh hơn / tốt hơn để sử dụng:MySQL hoặc PHP md5 function?

Nếu ứng dụng của bạn chỉ calcullating md5 khi ai đó đăng ký trên trang web của bạn hoặc đang đăng nhập, sở hữu nhiều cuộc gọi đến md5, bạn sẽ thực hiện mỗi giờ? Vài trăm? Nếu vậy, tôi không nghĩ thực sự nhỏ sự khác biệt giữa PHP và MySQL sẽ rất đáng kể.

Câu hỏi nên giống như "tôi đặt thực tế là mật khẩu được lưu trữ bằng md5 ở đâu" hơn là "điều gì khiến tôi hầu như không giành được gì".

Và, như một phụ chú, một câu hỏi khác có thể là:bạn có đủ khả năng chi tiêu các nguồn lực cho loại tính toán đó ở đâu? Nếu bạn có 10 máy chủ PHP và một máy chủ DB đang tải nặng, bạn sẽ có câu trả lời cho mình;-)

Nhưng, chỉ để giải trí:

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

Và trong PHP:

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

cho:

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

Nhưng có lẽ bạn sẽ không tính toán một triệu md5 như thế này, phải không?

(Và điều này không liên quan gì đến việc ngăn chặn việc tiêm SQL:chỉ cần thoát / trích dẫn dữ liệu của bạn! luôn luôn! hoặc sử dụng các câu lệnh đã chuẩn bị)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào tôi có thể thực hiện truy vấn cột json trong laravel?

  2. NodeJS mySQL Chèn Blob

  3. mysql không thể cấp đặc quyền cho người dùng, gặp lỗi:ERROR 1819 (HY000):Mật khẩu của bạn không đáp ứng các yêu cầu chính sách hiện tại

  4. Loại bỏ các chuỗi con trùng lặp

  5. nhiều chức năng là một chức năng lớn trong PHP?