Перейти к основному содержимому
Перейти к основному содержимому

типы размещения словаря hashed

hashed

Словарь полностью хранится в памяти в виде хеш-таблицы. Словарь может содержать произвольное количество элементов с любыми идентификаторами. На практике количество ключей может достигать десятков миллионов.

Ключ словаря имеет тип UInt64.

Поддерживаются все типы источников. При обновлении данные (из файла или таблицы) считываются целиком.

Пример конфигурации:

LAYOUT(HASHED())

Пример конфигурации с настройками:

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 это даже важнее, чем для hashed, поскольку sparse_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]))