MySQL depolama SHA1 hash deÄŸerleri
MySQL veritabanı SHA1 karma sonucu saklamak istediğim zaman yaşanan basit bir sorum var:
Ne kadar olmalıVARCHARhangi hash sonucu mağazası bir alan?
CEVAP
Sabit uzunlukta veri için değişken uzunlukta veri, ama değil VARCHAR
kullanmak istiyorsunuz. SHA-1 değeri olduğu içinher zaman160 bit uzunluğunda VARCHAR
sadece an additional byte for the length of the fixed-length field atık.
Ve ben de SHA1
dönüyor bu değeri saklamak olmaz. Karakter başına sadece 4 bit kullanır ve böylece 160/4 = 40 gerekir karakter çünkü. Ama eğer karakter başına 8 bit kullanıyorsanız, sadece 160/8 = 20 karakter uzunluğunda bir alan gerekir.
BINARY(20)
UNHEX
function ikili SHA1
değeri dönüştürmek için kullanmanızı tavsiye ederim.
BINARY(20)
CHAR(40)
Depolama şartları karşılaştırdım.
CREATE TABLE `binary` (
`id` int unsigned auto_increment primary key,
`password` binary(20) not null
);
CREATE TABLE `char` (
`id` int unsigned auto_increment primary key,
`password` char(40) not null
);
Kayıtlar milyon binary(20)
char(40)
64.57 M. alırken 44.56 M, alır
InnoDB
motoru.
Hangi MySQL boolean deÄŸerleri saklamak...
Tabloya MySQL tablo SET HALÄ°NDE.. vs D...
MySQL sadece not null değerleri SEÇİN...
Ben başvuru belirli bir tablo yabancı ...
Nasıl ruby hash değerleri ile karma bi...