跳转到主内容
跳转到主内容

hashed 字典布局类型

hashed

字典以哈希表的形式完全存储在内存中。字典可以包含任意数量、具有任意标识符的元素。实际使用中,键的数量可以达到数千万级。

字典键的类型为 UInt64

支持所有类型的数据源。更新时会完整读取数据(从文件或表中)。

配置示例:

LAYOUT(HASHED())

settings 的配置示例:

LAYOUT(HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5]))

sparse_hashed

类似于 hashed,但在节省内存的同时会消耗更多 CPU 资源。

字典键的类型为 UInt64

配置示例:

LAYOUT(SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5]))

对于这种类型的字典,也可以使用 shards;并且由于 sparse_hashed 更慢,相比于 hashedshardssparse_hashed 更为重要。

complex_key_hashed

这种存储类型用于复合,类似于 hashed

配置示例:

LAYOUT(COMPLEX_KEY_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5]))

complex_key_sparse_hashed

此存储类型用于复合。类似于 sparse_hashed

配置示例:

LAYOUT(COMPLEX_KEY_SPARSE_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5]))