таблиц? Все на одном сервере. Кейс такой:
— Таблица MergeTree основная (table)
— Несколько табличек Memory (table_temp_N) — очень маленькие (по объёму не больше 1% от основной)
— Таблица Merge (db, ‘^table')
Запрос в Merge работает на ~30% медленнее, чем если просто из MergeTree. Запрос без каких-либо сортировок и нагромождённых условий.
Поищите выше по словам “work stealing”. У меня точно такой де кейс был, все объяснили.
SELECT из Merge-таблицы, покрывающей нескольких обычных MergeTree-таблиц, будет работать с такой же скоростью как и SELECT из одной таблицы, содержащей объединение всех данных, только если все составляющие MergeTree-таблицы имеют одинаковый размер. Просто в случае Merge-таблицы пул потоков распределяется статически по всем зависимым таблицам: если чтение из одной таблицы закончится раньше остальных (из-за того что у нее банально меньше данных), то высвободившиеся потоки не будут использованы оставшимеся таблицами.
Обсуждают сегодня