jac*_*ack 5 python md5 hashlib
我有超过1亿个唯一字符串(MySQL数据库中的VARCHAR(100)UNIQUE).现在我使用下面的代码从它们创建唯一的哈希值(VARCHAR(32)UNIQUE)以减少InnoDB表的索引大小(varchar(100)上的唯一索引大约是varchar(32)字段的3倍).
id = hashlib.md5(str).hexdigest()
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以从这些字符串创建更短的ID并做出合理的唯一性保证?
您可以将其保存为整数:
id_ = int(hashlib.md5(your_str).hexdigest(), 16)
Run Code Online (Sandbox Code Playgroud)
或者作为二进制字符串
id_ = hashlib.md5(your_str).digest()
Run Code Online (Sandbox Code Playgroud)