BITMAP_HASH64
bitmap_hash64(expr)
简介
BITMAP_HASH64
BITMAP_HASH64
函数用于对输入的字符串进行 64 位哈希运算,返回包含哈希值的 bitmap。该函数是
BITMAP_HASH
BITMAP_HASH
的 64 位变体,使用 MurmurHash3 64 位算法计算哈希值,能够产生更大范围的哈希值,从而降低哈希冲突的概率。
语法
bitmap_hash64(expr)
bitmap_hash64(expr)
参数说明
expr
expr
:STRING
STRING
类型的表达式,需要计算 64 位哈希值的输入字符串。
返回结果
返回
BITMAP
BITMAP
类型,包含一个 64 位整数哈希值。
使用示例
-
对字符串进行 64 位哈希:
SELECT bitmap_to_string(bitmap_hash64('hello'));
+------------------------------------------+
| bitmap_to_string(bitmap_hash64('hello')) |
+------------------------------------------+
| -8014657081559513573 |
+------------------------------------------+
-
对另一个字符串进行 64 位哈希:
SELECT bitmap_to_string(bitmap_hash64('world'));
+------------------------------------------+
| bitmap_to_string(bitmap_hash64('world')) |
+------------------------------------------+
| -5394866185914414384 |
+------------------------------------------+
-
当输入为 NULL 时:
SELECT bitmap_hash64(NULL);
+---------------------+
| bitmap_hash64(NULL) |
+---------------------+
| NULL |
+---------------------+
注意事项
- 当输入参数为 NULL 时,返回结果为 NULL。
BITMAP_HASH64
BITMAP_HASH64
使用 MurmurHash3 64 位算法,而 BITMAP_HASH
BITMAP_HASH
使用 MurmurHash3 32 位算法。64 位哈希值范围更大,哈希冲突概率更低,适用于大规模数据场景。
- 返回的 bitmap 中包含一个 64 位无符号整数哈希值,可直接用于后续的 bitmap 操作(如
BITMAP_OR
BITMAP_OR
、BITMAP_AND
BITMAP_AND
等)。