XXHASH_64
描述
计算输入字符串或二进制的 64 位 xxhash 值
-注:经过测试 xxhash_64 的性能大约是 murmur_hash3_64 的 2 倍,所以在计算 hash 值时,更推荐使用xxhash_64,而不是murmur_hash3_64。
语法
XXHASH_64( <input> [ , <input> ... ] )
参数
| 参数 | 说明 |
|---|---|
<input> | 需要被计算 64 位 xxhash 的值, 接受字符串和二进制类型 |
返回值
返回输入字符串的 64 位 xxhash 值。
举例
select xxhash_64(NULL), xxhash_64("hello"), xxhash_64("hello", "world");
+-----------------+----------------------+-----------------------------+
| xxhash_64(NULL) | xxhash_64('hello') | xxhash_64('hello', 'world') |
+-----------------+----------------------+-----------------------------+
| NULL | -7685981735718036227 | 7001965798170371843 |
+-----------------+----------------------+-----------------------------+
-- vb (VarBinary) 和 vc (VarChar) 插入时使用了相同的字符串.
SELECT * FROM mysql_catalog.binary_test.binary_test;
+------+------------+------+
| id | vb | vc |
+------+------------+------+
| 1 | 0x616263 | abc |
| 2 | 0x78797A | xyz |
| 3 | NULL | NULL |
+------+------------+------+
SELECT XXHASH_64(vb), XXHASH_64(vc) FROM mysql_catalog.binary_test.binary_test;
+---------------------+---------------------+
| XXHASH_64(vb) | XXHASH_64(vc) |
+---------------------+---------------------+
| 8696274497037089104 | 8696274497037089104 |
| 7095089596068863775 | 7095089596068863775 |
| NULL | NULL |
+---------------------+---------------------+