|
1
29
对哈希摘要通常存储为十六进制数字的ASCII表示形式,例如单词“hash”的MD5是:
这是一个32个字符的ASCII字符串。 但是MD5实际上产生了一个128位的二进制哈希值。这 应该
重新。您认为您更关心性能而不是空间效率: 我不知道二进制数据类型比CHAR更快的原因。 如果您有效地使用缓存缓冲区,那么大小的一半可能是性能的优势。也就是说,如果字符串的大小是以十六进制存储相同值所需的字符大小的一半,那么给定数量的缓存可以存储两倍于二进制数据行数的数据。同样,该列上索引的缓存内存可以存储两倍的数据。
至于二进制存储的哈希字符串与BIGINT之间的区别,我会选择BIGINT。缓存效率将更高,而且在64位处理器上,整数运算和比较应该非常快。 我没有支持上述主张的测量数据。选择一种数据类型而不是另一种数据类型的净好处在很大程度上取决于数据库和应用程序中的数据模式和查询类型。为了得到最精确的答案,您必须尝试两种解决方案并测量差异。 重新。假设二进制字符串比较比默认的不区分大小写字符串比较快,我尝试了以下测试:
因此,二进制字符串比较比不区分大小写的字符串比较快17.5%。但是请注意,在对该表达式求值1亿次之后,总差值仍然小于1秒。虽然我们可以测量速度的相对差异,但速度的绝对差异实际上是微不足道的。 因此,我要重申:
|
|
2
6
从…起 the manual :
自从
|
|
|
D W · Python-将浮点数从2转换为10到100位小数 1 年前 |
|
|
NScara · 从Python中的二进制值解压缩文件[关闭] 2 年前 |
|
|
cake2244 · R中的应急表[副本] 3 年前 |
|
|
Linh Chi · 如何调试用于二进制搜索的Javascript代码 3 年前 |
|
|
GoodCat · 如何将这64行缩短4个字符? 3 年前 |