словарем?
у меня относительно разовая задача, пытаюсь за счет JOIN движка ускорить работу (обычный классический join очень долго выполняется)
По моему наоборот словарь удобнее чем join Engine, единственные преимущества видятся в том что можно задать тип соединения в join, в то время как словарь это по сути inner join только может быть или left join если вынести словарь в предложение select и потом выбрать всё
это понятно. непонятно почему вас понесло в join движок. Он очень похож на какую-то КХ легаси. Словари явно у него выигрывают и решают те-же самые задачи.
сгенерил для теста join таблицу и словарь с составными ключами 1) джойн занял в памяти 64Gb, словарь - 82Gb 2) в джойн таблицу можно на лету без блокировки дописывать, словарь такого размера обновляется пару минут 3) в джойн таблице можно хранить хэшированный составной ключ, тогда память становится 48Gb и скорость почти в 2 раза лучше становится
джойн хранит все атрибуты в одной хештаблице, т.е. жрет меньше памяти, и быстрее рабоатает если надо извлекать несколько атрибутов. словарь хранит каждый атрибут в своей хештаблице поэтому жрет больше памяти и быстрее работает если надо извлечь один атрибут. у словарей есть layout SPARSE_HASHED https://kb.altinity.com/altinity-kb-dictionaries/altinity-kb-sparse_hashed-vs-hashed/
Обсуждают сегодня