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

Sự khác biệt giữa BINARY (16) và CHAR (32) khi lưu trữ MD5 trong cơ sở dữ liệu

Hiện tại, bạn đang mất một nửa tổng tổng khi sử dụng BINARY(16) . Khi bạn lưu trữ tổng kiểm tra MD5 trong BINARY(16) bạn nên lưu trữ nó dưới dạng dữ liệu nhị phân, không được mã hóa trong hệ thập lục phân. Đó là:

INSERT INTO test (md5_binary) VALUES(UNHEX(md5("one!")));

Bạn có thể sử dụng hàm HEX để mã hóa nó thành hex một lần nữa nếu bạn muốn so sánh nó với một tổng kiểm tra khác:

SELECT HEX(md5_binary) FROM test;

Lợi ích của việc sử dụng BINARY để lưu trữ tổng kiểm tra thay vì văn bản thập lục phân là cần một nửa dung lượng lưu trữ.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn các bản ghi riêng biệt trên một kết nối

  2. SQL Server tương đương ELT () trong MySQL là gì?

  3. MYSQL tìm tất cả các hàng trong đó hàng thứ hai có các giá trị đã cho

  4. MySQLSyntaxErrorException khi cố gắng thực thi PreparedStatement

  5. mysql ... trong đó mệnh đề không rõ ràng